在Windows 8中获取类型程序集
我正在尝试在Windows 8中使用MEF。
为了构建容器的AssemblyCatalog
,我需要对程序集的引用。 在过去,我会这样做:
var catalog = new AssemblyCatalog(typeof(App).Assembly);
神秘的是, Type
对象上不再存在Assembly
属性。 有人知道一个好的工作吗? 还有另一种方法来组装吗? 我可以使用Assembly.Load
加载它,但我需要程序集的名称。 我不能从类型中得到那个。
使用DirectoryCatalog
可能是替代? 我不喜欢这个主意,但我会做我需要的。
using System.Reflection;
请改用type.GetTypeInfo().Assembly
。
在挖掘了大量有关构建metro风格应用程序的文档后,找到了答案。
http://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=VS.85%29.aspx#reflection
Type
类的reflection方面已移至名为System.Reflection.TypeInfo
的新对象。 您可以通过调用type.GetTypeInfo()
来获取此类的实例。
所以得到汇编: typeof(App).GetTypeInfo().Assembly
。
需要using System.Reflection;