10

我正在尝试在 Windows 8 中使用 MEF。

为了构建AssemblyCatalog容器,我需要对程序集的引用。在过去,我会这样做:

var catalog = new AssemblyCatalog(typeof(App).Assembly);

神秘地,该Assembly属性不再存在于Type对象上。有人知道一个好的工作吗?有没有其他方法可以获取组件?我可以使用 加载它Assembly.Load,但我需要程序集的名称。我也无法从类型中得到它。

是否使用DirectoryCatalog可能的替代方案?我不喜欢这个主意,但我会做我需要做的。

4

2 回答 2

17
using System.Reflection;

改为使用type.GetTypeInfo().Assembly

于 2011-09-30T15:03:06.117 回答
6

在浏览了有关构建 Metro 风格应用程序的大量文档后找到了答案。

http://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=VS.85%29.aspx#reflection

类的反射方面Type已移至名为System.Reflection.TypeInfo. 您可以通过调用获取此类的实例type.GetTypeInfo()

所以要得到大会:typeof(App).GetTypeInfo().Assembly.

需要using System.Reflection;

于 2011-09-30T15:02:27.223 回答