[英]How to get Type from TypeInfo in WinRT?
我希望按照惯例注册所有用于序列化的视图模型。
但是,以下代码将无法编译,因为foreach循环中的var viewmodel
的类型为TypeInfo
:
protected override void OnRegisterKnownTypesForSerialization()
{
var viewModels = this.GetType().GetTypeInfo().Assembly.DefinedTypes
.Where(t => _viewModelNameRegex.IsMatch(t.FullName))
.ToList();
foreach (var viewmodel in viewModels)
{
SessionStateService.RegisterKnownType(viewmodel);
}
}
显然, TypeInfo
不会从Type
继承:
public abstract class TypeInfo : MemberInfo, IReflectableType
与完整功能版本不同,后者继承自Type
。
那么如何从WinRT TypeInfo
获取Type
?
TypeInfo
继承自标准.NET库中的Type
,但在可移植库中,它声明为:
public abstract class TypeInfo : MemberInfo, IReflectableType
函数AsType()
返回与传统Type
最接近的东西
public virtual Type AsType()
返回与上面的TypeInfo
弱相关的Type
public abstract class Type
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.