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

发布于 2024-10-03 04:26:35 字数 97 浏览 0 评论 0原文

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

How do you configure a custom workflow extension (such as a PersistenceParticipant descendant) in Web.config when deploying to IIS or AppFabric? (For WF 4)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七婞 2024-10-10 04:26:37

您可以在活动的 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());
    }
}

接下来将其注册为配置中的行为扩展并在您的服务行为中使用

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

You can do so in the CacheMetadata of an activity or through a service behavior as follows.

Create an IServiceBehavior to add the extension and a BehaviorExtensionElement to load the 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());
    }
}

Next register it as an behaviorExtensions in the config and use in in your service behavior

<system.serviceModel>
    <extensions>
        <behaviorExtensions>
            <add name="myExtension"
                 type="MyWorkflowService.MyExtensionElement, MyWorkflowService"/>
        </behaviorExtensions>
    </extensions>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <myExtension/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文