簡體   English   中英

Workflow Foundation 4中的依賴注入/ IoC

[英]Dependency injection / IoC in Workflow Foundation 4

是否可以在工作流程活動中使用DI? 如果是,怎么樣?

例如,如果您有類似的活動

public sealed class MyActivity : CodeActivity
{
    public MyClass Dependency { get; set; }

    protected override void Execute(CodeActivityContext context)
    {
        Dependency.DoSomething();
    }
}

我該如何設置Dependency

(我正在使用Spring.Net)

工作流程不使用IOC容器。 它使用ServiceLocator模式,您可以將依賴項添加到工作流運行時作為擴展和工作流活動,並通過上下文從工作流擴展中檢索這些服務。

ServiceLocator和IOC模式類似,在解耦依賴關系時具有相同的目的。 雖然在一個IOC容器中推送依賴關系,而ServiceLocator用於拉出依賴關系,但apporach是不同的。

活動示例:

public class MyBookmarkedActivity : NativeActivity
{
    protected override void CacheMetadata(NativeActivityMetadata metadata)
    {
        base.CacheMetadata(metadata);
        metadata.AddDefaultExtensionProvider<MyExtension>(() => new MyExtension());
    }

    protected override void Execute(NativeActivityContext context)
    {
        var extension = context.GetExtension<MyExtension>();
        extension.DoSomething();

    }
}

MyExtension類是此處的擴展,它沒有基類或接口要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM