gpt4 book ai didi

c# - 如何从静态类中解析命名实例?

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:44 26 4
gpt4 key购买 nike

有人知道我做错了什么吗?

我有一个这样的静态类:

public static class ApplicationContainer
{
private static ContainerBuilder builder = null;
private static IContainer container = null;

public static void Create()
{
builder = new ContainerBuilder();

builder.RegisterInstance(new Repository<Log>(RepositoryType.Main))
.As<IRepository<Log>>().SingleInstance()
.Named("Log", typeof(Repository<Log>));

container = builder.Build();
}

public static IContainer Container()
{
if (container != null) return container;
throw new Exception("Container is not ready.");
}
}

在我的 MVC 应用程序的 Global.asax.cs 中,我有:

    protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();

ApplicationContainer.Create();

RegisterRoutes(RouteTable.Routes);
}

现在问题来了:我如何从容器中解析命名实例?

public class DefaultLogger : ILogger
{
ApplicationContainer.Container().Resolve("Log", typeof(Repository<Log>);// <--- does not work
}

但是当 ApplicationContainer 类不是静态的时,从容器中解析非常好。我使用 autofac 2.2.4。

最佳答案

我相信您无法编译此代码,因为您缺少 .Resolve(...) 调用的结束符“)”。

就是说,你看过 Autofac ASP.Net integration 了吗?模块?

关于c# - 如何从静态类中解析命名实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369684/

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