.net 以编程方式添加BehaviorExtensionElement

kyks70gy  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(261)

我有一个ServiceHost,我正在以编程方式创建,我想向它添加一个Behaviour。我可以使用host.Description.Behaviors.Add()添加Behaviour,但我找不到添加BehaviorExtensionElement部分的方法。有一个host.Extensions集合,但它接受ServiceHostBase。基本上我想将此web.config部分转换为代码:

  1. <system.serviceModel>
  2. <behaviors>
  3. <serviceBehaviors>
  4. <behavior name="">
  5. <serviceDebug includeExceptionDetailInFaults="false" />
  6. <errorHandler />
  7. </behavior>
  8. </serviceBehaviors>
  9. </behaviors>
  10. <extensions>
  11. <behaviorExtensions>
  12. <add name="errorHandler" type="MyService.ErrorHandlerBehaviorExtensionElement, MyService" />
  13. </behaviorExtensions>
  14. </extensions>
  15. </system.serviceModel>

字符串

eagi6jfj

eagi6jfj1#

服务行为

实现IServiceBehavior的服务行为是修改整个服务运行时的主要机制。
1.使用服务类上的属性。构造ServiceHost时,ServiceHost实现使用反射来发现服务类型上的属性集。如果这些属性中的任何一个是IServiceBehavior的实现,则它们将被添加到ServiceDescription上的行为集合中。这允许这些行为参与服务运行时的构造。
1.以编程方式将行为添加到ServiceDescription上的behaviors集合。这可以通过以下代码行完成:
第一个月
1.实现扩展配置的自定义BehaviorExtensionElement。这允许使用应用程序配置文件中的服务行为。
所以我认为不需要同时添加Behaviors和BehaviorExtensionElement。还可以检查:https://msdn.microsoft.com/en-us/library/system.servicemodel.description.iservicebehavior.applydispatchbehavior(v=vs.110).aspx

相关问题