在Windows 8中获取类型程序集

Jos*_*h G 10 c# mef windows-8 windows-runtime

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

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

var catalog = new AssemblyCatalog(typeof(App).Assembly);
Run Code Online (Sandbox Code Playgroud)

神秘地,物体Assembly不再存在于Type物体上.有人知道好的工作吗?有没有另一种方法来获得组装?我可以使用加载它Assembly.Load,但我需要程序集的名称.我不能从类型中得到那个.

使用DirectoryCatalog可能的备用?我不喜欢这个主意,但我会做我需要的.

Rom*_*iko 17

using System.Reflection;
Run Code Online (Sandbox Code Playgroud)

type.GetTypeInfo().Assembly改用.

  • 文档中的引用将其清除:"您可以通过调用System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type)方法来检索TypeInfo对象,该方法是Type的扩展方法." (2认同)
  • 一旦我使用System.Reflection添加`就像魅力一样工作;`所以我可以引用扩展函数. (2认同)

Jos*_*h G 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;