Пространство имен System.Security.Cryptography, поддерживаемое переносимой библиотекой классов - PullRequest
9 голосов
/ 17 октября 2011

Я преобразую существующий многоцелевой проект Silverlight / .NET в проект Portable Class Library, чтобы уменьшить количество проектов, необходимых для поддержки нескольких платформ Microsoft.

У меня ошибка в одном классе, который использует пространство имен System.Security.Cryptography

Тип или имя пространства имен «Криптография» не существует в пространстве имен «System.Security» (отсутствует ссылка на сборку?)

Это пространство имен доступно в Silverlight, и мне интересно, почему Portable Class Library его не поддерживает?

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

Ответы [ 4 ]

8 голосов
/ 26 февраля 2012

Нет, к сожалению, Portable Library не поддерживает Crypto.Однако мы добавили поддержку для него в PclContrib .

4 голосов
/ 29 июня 2015

Я предлагаю вам использовать PclCrypto . Он прост в использовании и вызывает криптографию платформы, а не пытается реализовать ее самостоятельно, что означает меньшую угрозу безопасности и более высокую производительность.

4 голосов
/ 17 октября 2011

Я подозреваю, что это не поддерживает.Члены классов в этом пространстве имен помечены изображением:

Список членов, поддерживаемых проектом Portable Class Library, можно найти в справочных разделах библиотеки классов .NET Framework.В таблице участников для класса рядом с поддерживаемыми членами появляется следующий значок Portable Class Library.Portable Class Library

Это изображение отсутствует в каждом классе, который я изучал в документации.

Это пространство имен доступно в Silverlight, и мне интересно, почему Portable Class Library делаетне поддерживаете?

Не могу точно сказать;но, похоже, его не хватает в XNA для платформы XBox 360.Даже тогда, я считаю, что ваш вывод верен - это не API, который очень популярен в интерфейсеТогда базовый код также крайне непереносим.Большая часть пространства имен Crypto выполняется P / Invoking вплоть до операционной системы.Я подозреваю, что они могли сделать это портативным, как они сделали с Silverlight;но это, возможно, просто еще не было на их радаре.

1 голос
/ 09 ноября 2011

"Вы можете найти, какие члены поддерживаются проектом Portable Class Library в справочных разделах для библиотеки классов .NET Framework. В таблице участников для класса рядом с поддерживаемыми членами появляется следующий значок Portable Class Library."

Я бы порекомендовал использовать браузер объектов, поскольку я нашел примеры классов, которые, как указывает MSDN, поддерживаются в PCL, но отсутствуют в платформе. Такой пример - Ленивый

(по состоянию на 2011-9-11)

...