Autofac - 在运行时解析 IEnumerable 通用接口
我找到了如何使用下面的代码在运行时解析通用接口。我将如何解析 IGenericInterface<>
的所有实例以在运行时取回集合。我知道在 autofac 中我们应该使用 IEnumerable
但我不知道如何在下面的示例中表示它:
var typeInRuntime = typeof (SubClass1);
var instance1 = container.Resolve(typeof(IGenericInterface<>)
.MakeGenericType(typeInRuntime));
这显然不起作用
var typeInRuntime = typeof (SubClass1);
var collection = container
.Resolve(IEnumerable<typeof(IGenericInterface<>)
.MakeGenericType(typeInRuntime)>);
I found out how to resolve at runtime a generic interface using the below code. How would I resolve ALL instances of IGenericInterface<>
to get back collection at runtime. I know in autofac we are supposed to use IEnumerable<T>
but I don't know how to represent that in the below example:
var typeInRuntime = typeof (SubClass1);
var instance1 = container.Resolve(typeof(IGenericInterface<>)
.MakeGenericType(typeInRuntime));
This does not work obviously
var typeInRuntime = typeof (SubClass1);
var collection = container
.Resolve(IEnumerable<typeof(IGenericInterface<>)
.MakeGenericType(typeInRuntime)>);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须分两步构建通用
IEnumerable
类型。以下代码适用于我的机器;)You have to build the generic
IEnumerable
type in two steps. The following code works on my machine ;)