如何在WinRT中从TypeInfo获取类型
本文关键字:TypeInfo 获取 取类型 中从 WinRT | 更新日期: 2023-09-27 18:25:41
按照惯例,我想注册所有视图模型进行序列化。
但是,以下代码将不会编译,因为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