有反射的问题步行类型

时间:2012-01-30 16:53:45

标签: c# .net reflection

因此,尝试遍历类型以查找具有接口的类。

方法:

var assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach(...)
var types=assembly.GetTypes();

例外:

{“无法加载一个或多个请求的类型。请检索LoaderExceptions属性以获取更多信息。”}

LoaderExceptions的内容: {“方法'Do'在类型'namespaceinfo.ImportR'中来自程序集'namespaceInfo.Importer,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'没有实现。”:“nameSpaceInfo.ImportR”}

迄今为止在SO上发现的信息 -

  • .Net按需加载类型/程序集。也许尚未加载依赖项。

  • ......现在就是这样。

在花了几个小时之后,我开始认为装饰具有属性的类,然后出于某些原因随后走它们在某些情况下可能是一个坏主意。显然,其他服务成功地做到了这一点我错过了什么?像Fluent这样的智能实现我应该看看吗?


到目前为止,答案是不要在一个特定的程序集中使用类型。即。过滤掉它

2 个答案:

答案 0 :(得分:2)

我会亲自深入研究StructureMap或其他Dependency Injection容器中的代码。

答案 1 :(得分:1)

您似乎正在尝试在运行时加载特定接口的实现。大概是创建实例并在您的应用程序中使用它们。如果是这样,那么我建议使用像MEF这样的框架,而不是手动滚动。