1

將某些代碼遷移到PCL定位.Net4.5/Silverlight5時,ResourceManager類中的IgnoreCase屬性消失。PCL:缺少屬性

此屬性同時存在於.Net4.5Silverlight5之間,所以兩個API的「交集」都應該使其可用。 (因爲.Net2存在此屬性,且似乎並不過時)

我用IgnoreCase作爲後備檢索RESX值。我在msdn上發現了一些關於ResourceManager with PCL的特定信息,但沒有提到這個「IgnoreCase問題」。

  • 爲什麼會出現這樣奇怪的API行爲?
  • 是否有解決方法來檢索ResourceManager值與大小寫不敏感的鍵?

最後但並非最不重要的,我反編譯Profile24 & Profile47 \ mscorlib.dll中與反射,似乎ResourceManager只是沒有執行。(這是GetString方法只是返回null),當然這IgnoreCase不存在。我錯過了什麼?

+0

基於系統的底層功能,PCL配置文件生成.NET平臺的最小可行公共子集。爲什麼特定配置文件缺少某些功能是基於受支持平臺的某些限制。將它移到了評論中,因爲它沒有真正回答'爲什麼'的問題。 – 2015-02-24 16:08:37

+0

是的,我知道,事實是這個屬性存在於.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

+0

看起來可能與關於不區分大小寫的搜索性能的評論有關。他們建議不要這樣做,所以他們拿走了這個能力? – 2015-02-24 16:14:34

回答

1

我不明白爲什麼這個屬性不包括在內,但我懷疑這是因爲我們不推薦使用它,或者想要在未來的平臺中刪除對它的支持。

您可以在我的blog post on PCLs中看到爲什麼API可能無法便攜的一般列表。

+0

感謝您的反應:)通常在.Net這樣的屬性被標記爲[已廢棄],然後被刪除,它可能只是一個遺漏?你知道是否有解決方法嗎? – rducom 2015-02-24 19:41:29