我在IIS中托管了多个WCF服务,我正在对其应用相同的自定义服务行为。我正在寻找一种通过配置将多个参数传递给行为的方法,例如behaviorExtensions或behavior元素。
如果有帮助,我还将在ApplyDispatchBehavior中添加自定义消息检查器,因此我需要将参数传递给检查器:
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
foreach (ChannelDispatcher channelDispatcher in serviceHostBase.ChannelDispatchers)
{
foreach (EndpointDispatcher endpointDispatcher in channelDispatcher.Endpoints)
{
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(
new ValidatingMessageInspector(<custom parameters>));
}
}
}
仅使用参数在web.config中创建配置节是否有效?如果是这样,您可以在那里读取配置并应用它,或者如果参数是基本的,甚至可以使用appSettings。
例如,如果基本类型的参数很少,则也许一种简单的方法可能是:
<appSettings>
<add key="Shared.CommonParameter" value="A value" />
<add key="Service1.OneParameter" value="False" />
<add key="Service1.AnotherParameter" value="Some Value" />
<add key="Service2.ADifferentParameter" value="42" />
</appSettings>
这样,很容易区分哪个设置属于哪个服务(注意密钥中的服务名称前缀),并且在需要时还具有一些共享参数。
如果需要结构上更复杂的东西,则可能需要研究为每个服务定义自定义配置部分,如下所示:http : //msdn.microsoft.com/zh-cn/library/2tw134k3%28v=vs.140 %29.aspx
但是,根据您的需求和预期的灵活性,这可能会过分杀伤力。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句