gpt4 book ai didi

.net - 解析实例 - Autofac

转载 作者:行者123 更新时间:2023-12-04 06:12:14 29 4
gpt4 key购买 nike

我试图弄清楚如何在代码中的某个地方解析一个实例。

在应用程序启动时,我注册了一个类型

static void Main()
{
var builder = new ContainerBuilder();
builder.RegisterType<Foo>().As<IFoo>();
}

现在,我怎样才能在代码中的某个地方解析一个实例?

在 StructureMAP 中有一个静态对象 ObjectFactory.GetInstance<IFoo>()

最佳答案

阅读 Getting Started .它应该让你开始。

首先,您要查找的是 container .从 ContainerBuilder 构建它就像在这个简单的 WinForms 应用程序中一样:

static void Main()
{
using (var container = builder.Build())
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

var mainForm = container.Resolve<MainForm>();
Application.Run(mainForm)
}
}

一般的想法是你只需要解决第一个或最顶层的实例。容器将通过构造函数参数处理基于依赖注入(inject)的所有其他实例。

如果整个应用程序都遵循 DI 模式,您应该只需要在启动时触摸一次容器。

您如何解决最顶层的实例很大程度上取决于您正在构建的应用程序类型。如果它是一个网络应用程序, ASP.Net integrationMVC integration会为你照顾它。 (毕竟,ASP.Net 中最顶层的实例是 Application,这是我们无法控制的)。

另一方面,如果它是控制台应用程序或 WinForms 应用程序,您将在 Main 中手动解析第一个实例。 ,就像我上面的示例一样。

关于.net - 解析实例 - Autofac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737139/

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