回答

5

您可以在活動的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