可移植类库是否支持System.Security.Cryptography命名空间

我正在将现有的多目标Silverlight / .NET项目转换为可移植类库项目,以减少支持多个Microsoft平台所需的项目数量。

我在一个使用System.Security.Cryptography命名空间的类中有错误

命名空间’System.Security’中不存在类型或命名空间名称’Cryptography’(您是否缺少程序集引用?)

这个命名空间在Silverlight中可用,我想知道为什么Portable Class Library不支持它?

一个原因可能是此行为是设计原因:任何与加密相关的代码都不应出现在客户端API中。

不幸的是,Portable Library不支持Crypto。 但是,我们在PclContrib中添加了对它的支持 。

我怀疑它不支持它。 该命名空间中的类的成员标有图像:

您可以在.NET Framework类库的参考主题中找到可移植类库项目支持的成员。 在类的成员表中,受支持的成员旁边会显示以下可移植类库图标。 便携式类库

我在文档中检查的每个类都缺少这个图像。

这个命名空间在Silverlight中可用,我想知道为什么Portable Class Library不支持它?

我不能肯定地说; 但XBox 360平台下XNA似乎缺乏。 即便如此,我相信你的结论是正确的 – 它不是一个在前端非常流行的API。 然后底层代码也非常不便携。 Crypto名称空间的很大一部分是通过P / Invoking到操作系统来完成的。 我怀疑他们可以像Silverlight那样使它变得便携; 但那可能还没有出现在他们的雷达上。

我建议你使用PclCrypto 。 它是最简单的使用和调用平台加密而不是尝试自己实现它,这意味着更低的安全风险和更快的性能。

“您可以在.NET Framework类库的参考主题中找到可移植类库项目支持的成员。在类的成员表中,支持的成员旁边会显示以下可移植类库图标。”

我建议使用对象浏览器,因为我已经找到了MSDN指示在PCL中支持的类的示例,但框架中缺少这些类。 这样的例子是懒惰的

(截至2011-9-11)