在Web.config中添加工作流扩展

问题描述:

如何在部署到IIS或AppFabric时在Web.config中配置自定义工作流扩展(如PersistenceParticipant后代)? (对于WF 4)在Web.config中添加工作流扩展

您可以在活动的CacheMetadata中或通过服务行为进行如下操作。

创建一个IServiceBehavior来添加扩展和一个BehaviorExtensionElement来加载IServiceBehavior。

public class MyExtensionElement : BehaviorExtensionElement 
{ 
    public override Type BehaviorType 
    { 
     get 
     { 
      return typeof(MyExtensionBehavior); 
     } 
    } 
    protected override object CreateBehavior() 
    { 
     return new MyExtensionBehavior(); 
    } 
} 

public class MyExtensionBehavior : IServiceBehavior 
    { 
    public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) 
    { 
     var host = (WorkflowServiceHost)serviceHostBase; 
     host.WorkflowExtensions.Add<MyExtension>(() => new MyExtension()); 
    } 
} 

下一页登记其作为配置的behaviorExtensions和您的服务行为使用

<system.serviceModel> 
    <extensions> 
     <behaviorExtensions> 
      <add name="myExtension" 
       type="MyWorkflowService.MyExtensionElement, MyWorkflowService"/> 
     </behaviorExtensions> 
    </extensions> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior> 
       <myExtension/> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 
+0

谢谢 - 工作!我认为你的意思是type =“MyWorkflowService.MyExtensionElement,MyWorkflowService”。 – TrueWill 2010-11-17 19:19:47

+0

是的,你是对的,抱歉关于复制和部分错误。 – Maurice 2010-11-17 21:13:36