我曾经有一些代码可以扫描bin
我的应用程序的目录中包含尚未加载到 AppDomain 中并加载它们的程序集。它基本上看起来像:
foreach (var assemblyPath in Directory.GetFiles("path\to\bin", "*.dll"))
{
var inspected = Assembly.ReflectionOnlyLoadFrom(assemblyPath);
Assembly.Load(inspected.GetName());
}
为了简洁起见,我跳过了 try/catch 子句等。
这使我能够在运行时将带有某些接口实现的程序集放入 bin 文件夹中,并让 IoC 容器自动拾取它们。现在有了新的 Roslyn 魔法,调试时不再需要物理 DLL。有没有办法检索程序集名称、项目名称或依赖项名称(在project.json
)动态地。
我想我必须实施类似的事情Entropy 存储库中的这个示例 https://github.com/aspnet/Entropy/blob/dev/samples/Runtime.CustomLoader/Program.cs,但我不知道如何针对我的场景实现它。
您可以使用IAssemblyLoadContextAccessor
用于动态加载 ASP.NET 5 类库 (.xproj) 项目的接口。以下示例代码适用于 Beta 4:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
var assemblyLoadContextAccessor = app.ApplicationServices.GetService<IAssemblyLoadContextAccessor>();
var loadContext = assemblyLoadContextAccessor.Default;
var loadedAssembly = loadContext.Load("NameOfYourLibrary");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)