簡體   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