將某些代碼遷移到PCL定位.Net4.5/Silverlight5時,ResourceManager
類中的IgnoreCase
屬性消失。PCL:缺少屬性
此屬性同時存在於.Net4.5和Silverlight5之間,所以兩個API的「交集」都應該使其可用。 (因爲.Net2存在此屬性,且似乎並不過時)
我用IgnoreCase
作爲後備檢索RESX值。我在msdn上發現了一些關於ResourceManager with PCL
的特定信息,但沒有提到這個「IgnoreCase
問題」。
- 爲什麼會出現這樣奇怪的API行爲?
- 是否有解決方法來檢索
ResourceManager
值與大小寫不敏感的鍵?
最後但並非最不重要的,我反編譯Profile24 & Profile47 \ mscorlib.dll中與反射,似乎ResourceManager
只是沒有執行。(這是GetString
方法只是返回null),當然這IgnoreCase
不存在。我錯過了什麼?
基於系統的底層功能,PCL配置文件生成.NET平臺的最小可行公共子集。爲什麼特定配置文件缺少某些功能是基於受支持平臺的某些限制。將它移到了評論中,因爲它沒有真正回答'爲什麼'的問題。 – 2015-02-24 16:08:37
是的,我知道,事實是這個屬性存在於.Net 4.5和Silverlight 5中......而PCL在這種情況下應該產生兩個API的「交集」。 「最小公共子集」在這裏被很好地解釋爲一個交集:http://www.kenneth-truyers.net/2013/03/27/portable-class-libraries-or-source-code-sharing/ ResourceManager存在於API和IgnoreCase屬性。所以我的問題是:會發生什麼?爲什麼發生這種情況?有沒有解決方法? – rducom 2015-02-24 16:13:10
看起來可能與關於不區分大小寫的搜索性能的評論有關。他們建議不要這樣做,所以他們拿走了這個能力? – 2015-02-24 16:14:34