【发布时间】:2017-06-22 19:48:36
【问题描述】:
我正在使用 AutoFac 根据接口实现自动注册依赖项,如下所示:
builder.RegisterAssemblyTypes(Assembly.GetEntryAssembly()).AsImplementedInterfaces();
这对入口程序集很有效,但是所有相关程序集呢?
我想做这样的事情:
IList<Assembly> assemblies = GetLoadedAssemblies();
foreach(var assembly in assemblies)
{
builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces();
}
我已经搜索并看到了一堆带有 AssemblyLoadContext 等的 .netcore 1.0 内容,但在 1.1 中似乎不再存在。基本上,当您进行搜索时,您会得到很多过时的参考资料,这些参考资料不再有效。
必须有一种方法来获取当前加载的程序集。
我该怎么做?
【问题讨论】:
-
您真的对加载的程序集或应用程序依赖关系图的一部分感兴趣吗?如果您的程序集没有直接引用,则它可能尚未加载,即使它在 csproj 中被指定为依赖项。
-
在这个特定的应用程序中,加载的应用程序就可以了。不过,在其他应用程序中,我想加载相关程序集并进行映射,因为您是对的,它们可能尚未加载。
标签: c# dependency-injection .net-core