Alw*_*wyn 10 c# reflection windows-8 windows-runtime
我希望按照惯例注册所有用于序列化的视图模型.
但是,以下代码将无法编译,因为viewmodel
foreach循环中的var 是类型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);
}
}
Run Code Online (Sandbox Code Playgroud)
显然TypeInfo
不会继承自Type
:
public abstract class TypeInfo : MemberInfo, IReflectableType
Run Code Online (Sandbox Code Playgroud)
不同于完整功能版本,它继承自Type
.
那么我如何Type
从WinRT 获得TypeInfo
?
Alw*_*wyn 17
TypeInfo
继承自Type
标准.NET库,但在可移植库中,它被声明为:
public abstract class TypeInfo : MemberInfo, IReflectableType
Run Code Online (Sandbox Code Playgroud)
该函数AsType()
返回最接近传统的东西Type
public virtual Type AsType()
Run Code Online (Sandbox Code Playgroud)
返回与TypeInfo
上述弱相关的Type
public abstract class Type
Run Code Online (Sandbox Code Playgroud)