繁体   English   中英

如何在WinRT中从TypeInfo获取Type?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM