簡體   English   中英

Type.GetProperties()在Release中不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM