Reflection WinRT中的反射可从

Reflection WinRT中的反射可从,reflection,winrt-xaml,Reflection,Winrt Xaml,我试图使用反射检索从页面对象继承的类型列表 我的目标如下: public sealed partial class Register : Page { .... } 在另一个类中,我使用: var currentAssembly = this.GetType().GetTypeInfo().Assembly; var page = currentAssembly.DefinedTypes.Single(t => t.Name == p.PageName); var inherits

我试图使用反射检索从页面对象继承的类型列表

我的目标如下:

 public sealed partial class Register : Page
 { .... }
在另一个类中,我使用:

var currentAssembly = this.GetType().GetTypeInfo().Assembly;
var page = currentAssembly.DefinedTypes.Single(t => t.Name == p.PageName);

var inherits = page.IsAssignableFrom(typeof(Page).GetTypeInfo());
其中p.PageName=寄存器


出于某种原因,继承在本应为真时为假。register的定义和我有反射的类的定义也在同一个项目中。

我通过使用以下方法解决了这个问题:

var pageInstance = (Page) Activator.CreateInstance(page.AsType());
if (pageInstance == null)
{
    _logger.Debug(string.Format("The type {0} does not inherit from Page and cannot be navigated to.", page.Name));
    throw new ArgumentException("Only object names deriving from Page can be navigated to.");
}
不过,我还是希望有更好的建议。谢谢