[英]Type.GetProperties() doesn't work in Release
我試圖使用反射在C#中獲取FontWeights
類的屬性。
var properties = typeof(FontWeights).GetProperties();
var dialog = new MessageDialog("Number of weights: " + properties.Length);
await dialog.ShowAsync();
使用Debug配置構建時,上面的工作正常。 但是,使用Release時,找不到任何屬性。
為什么會這樣? 有辦法解決嗎?
這是一個UWP應用程序。
這是一個UWP應用程序。
在發布版本中,您的應用程序是使用.NET Native編譯的。 這是故意的,它可以確保您測試應用程序在用戶計算機上運行的方式。 .NET Native並不是一帆風順的,它積極地從最終圖像中消除類型以獲得盡可能小的二進制文件。 這在代碼上有尖銳的邊緣,通常需要抖動才能正常工作。 特別是反射代碼會像這段代碼一樣流血。
您需要幫助並告訴工具鏈將FontWeights類型包含在最終圖像中。 打開項目的Properties節點,然后雙擊Default.rd.xml。 加:
<Type Name="Windows.UI.Text.FontWeights" Dynamic="Required All" />
重建,你會發現一切都很順利。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.