[英]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.