gpt4 book ai didi

c# - Workflow Foundation 4 中的依赖注入(inject)/IoC

转载 作者:可可西里 更新时间:2023-11-01 08:06:21 25 4
gpt4 key购买 nike

是否可以在您的工作流事件中使用 DI?如果是,怎么做?

例如,如果您有这样的事件

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

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

如何设置依赖

(我正在使用 Spring.Net)

最佳答案

工作流不使用 IOC 容器。它使用 ServiceLocator 模式,您可以在其中将依赖项作为扩展和工作流事件添加到工作流运行时,并通过上下文从工作流扩展中检索这些服务。

ServiceLocator 和 IOC 模式相似,在解耦依赖方面具有相同的目的。尽管在 IOC 容器中推送依赖项,而 ServiceLocator 用于拉出依赖项,但该方法是不同的。

示例事件:

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 类是这里的扩展,它没有基类和接口(interface)要求。

关于c# - Workflow Foundation 4 中的依赖注入(inject)/IoC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3825791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com