因此,尝试遍历类型以寻找具有接口的类。
方法:
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach(...)
var types=assembly.GetTypes();
例外:
{"无法加载一个或多个请求的类型。有关详细信息,请检索LoaderExceptions属性。"}
LoaderExceptions的内容:{"程序集"namespaceinfo.Importer,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"中类型"namespaceinfo.ImportR"中的方法"Do"没有实现。":"namespaceinfo.ImportR"}
迄今为止在so上发现的信息——
按需提供类型/程序集中的净负载。也许还没有加载依赖项。
。。。目前仅此而已。
在花了几个小时研究这件事之后,我开始认为,在某些情况下,用属性装饰课程,然后出于某些原因步行可能是个坏主意。显然,其他服务可以成功地做到这一点。我错过了什么?像Fluent这样的东西有没有智能实现,我应该看看?
到目前为止,答案是不要遍历某个特定程序集中的类型。即过滤掉
我会亲自深入研究StructureMap或另一个依赖注入容器内部的代码。
您似乎正在尝试在运行时加载特定接口的实现。大概是为了创建实例并在应用程序中使用它们。如果是这样的话,那么我建议使用像MEF这样的框架,而不是手动滚动。
- http://msdn.microsoft.com/en-us/magazine/ee291628.aspx