1

При переносе некоторого кода на таргетинг PCL. Net4.5/Silverlight5 свойство исчезает на уровне ResourceManager.PCL: отсутствует свойство

Это свойство существует как в .Net4.5, так и в Silverlight5, поэтому «пересечение» обоих API должно было оставить его доступным. (это свойство существует с .Net2 и не выглядит устаревшим)

Я использую IgnoreCase как резерв для получения значений resx. Я нашел определенную информацию о msdn о ResourceManager with PCL, но ничего об этом «IgnoreCase issue».

  • Почему такое странное поведение API?
  • Есть ли обходной путь для получения значений ResourceManager с помощью клавиш, нечувствительных к регистру?

И последнее, но не в последнюю очередь, я декомпилированы Profile24 & Profile47 \ mscorlib.dll с отражателем, кажется, ResourceManager просто не реализован .. (это GetString методы просто возвращает нуль), и это, конечно, IgnoreCase отсутствует. Что мне не хватает?

+0

Профили PCL создают минимально жизнеспособное общее подмножество платформы .NET на основе базовых возможностей системы. Почему конкретная функциональность отсутствует в каком-либо конкретном профиле, основана на некотором ограничении поддерживаемых платформ. Перемещено это на комментарий, потому что он не отвечает на вопрос «почему». –

+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

+0

Похоже, что это может быть связано с комментарием о выполнении запросов, нечувствительных к регистру. Они не рекомендуют это делать, поэтому они убрали способность? –

ответ

1

Я не знаю, почему это свойство не было включено, но я подозреваю, что это было потому, что мы не рекомендовали его использовать или хотели бы удалить его для поддержки на будущих платформах.

Вы можете увидеть общий список причин, по которым API могут быть не переносимыми в моем blog post on PCLs.

+0

Спасибо за реактивность :) Обычно на .Net такие свойства отмечены [Устаревшие] перед удалением, может быть, это просто упущение? И знаете ли вы, что есть обходной путь? – rducom

Смежные вопросы