本文整理汇总了C#中System.ServiceModel.Description.ServiceDescription.NonSystemEndpoints方法的典型用法代码示例。如果您正苦于以下问题:C# ServiceDescription.NonSystemEndpoints方法的具体用法?C# ServiceDescription.NonSystemEndpoints怎么用?C# ServiceDescription.NonSystemEndpoints使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.ServiceModel.Description.ServiceDescription
的用法示例。
在下文中一共展示了ServiceDescription.NonSystemEndpoints方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ApplyDispatchBehavior
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
var serviceBehavior = serviceDescription.Behaviors.Find<ServiceBehaviorAttribute>();
bool singleInstance = (serviceBehavior != null &&
serviceBehavior.InstanceContextMode == InstanceContextMode.Single);
var contractNameToContractType = new Dictionary<string, Type>();
#if !DOTNET35
var endpoints = serviceDescription.NonSystemEndpoints();
#else
var endpoints = serviceDescription.Endpoints;
#endif
foreach (var endpoint in endpoints)
{
contractNameToContractType[endpoint.Contract.Name] = endpoint.Contract.ContractType;
}
foreach (var cdb in serviceHostBase.ChannelDispatchers)
{
var cd = cdb as ChannelDispatcher;
if (cd != null)
{
foreach (var ed in cd.Endpoints)
{
if (contractNameToContractType.ContainsKey(ed.ContractName))
{
if (singleInstance)
{
ed.DispatchRuntime.SingletonInstanceContext =
new InstanceContext(serviceHostBase);
}
ed.DispatchRuntime.InstanceProvider =
new WindsorInstanceProvider(kernel, model,
contractNameToContractType[ed.ContractName],
serviceDescription.ServiceType
);
}
}
}
}
}