gpt4 book ai didi

c# - Autofac Resolve>() 返回空列表

转载 作者:太空狗 更新时间:2023-10-30 00:55:59 28 4
gpt4 key购买 nike

我已经阅读了很多 Autofac 文档/wiki,它们表明我可以通过执行如下所示的简单操作来获取所有已注册类型的列表:

var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
.AssignableTo<IPersistedModel>();
var container = builder.Build();
var allTypes = container.Resolve<IEnumerable<IPersistedModel>>();

问题是 allTypes 是空的。

在调试器中,我可以看到容器内部有 7 种匹配类型,甚至还有一个 IPersistedModel 数组...但它们不会在 Resolve() 上返回。

我错过了什么?

最佳答案

您需要将类型注册为接口(interface),或者使用 .As<IPersistedModel>()或使用 .AsImplementedInterfaces() 的所有接口(interface):

builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
.AssignableTo<IPersistedModel>()
.AsImplementedInterfaces();

关于c# - Autofac Resolve<IEnumerable<T>>() 返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845604/

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