首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从TypeInfo中获取WinRT类型?

如何从TypeInfo中获取WinRT类型?
EN

Stack Overflow用户
提问于 2013-08-01 04:04:17
回答 1查看 2.9K关注 0票数 10

我想按照惯例注册序列化的所有视图模型。

但是,以下代码将不会编译,因为foreach循环中的var viewmodelTypeInfo类型的

代码语言:javascript
复制
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继承的

代码语言:javascript
复制
public abstract class TypeInfo : MemberInfo, IReflectableType

全功能版不同,它确实继承了Type

那么我怎样才能从Type到WinRT TypeInfo

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 06:13:33

TypeInfo继承了标准.NET库中的Type,但在可移植库中声明为:

代码语言:javascript
复制
public abstract class TypeInfo : MemberInfo, IReflectableType

函数AsType()返回与传统Type最接近的东西。

代码语言:javascript
复制
public virtual Type AsType()

,它返回与上面的TypeInfo弱相关的类型

代码语言:javascript
复制
public abstract class Type
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17985100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档