10

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

但是,以下代码将无法编译,因为viewmodelforeach 循环中的 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);
    }
}

显然TypeInfo不继承自Type

public abstract class TypeInfo : MemberInfo, IReflectableType

不像全功能版本,它确实继承自Type.

那么我怎样才能Type从 WinRT获得TypeInfo呢?

4

1 回答 1

17

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

public abstract class TypeInfo : MemberInfo, IReflectableType

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

public virtual Type AsType()

哪个返回与TypeInfo上述弱相关的类型

public abstract class Type
于 2013-08-01T06:13:33.530 回答