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

时间:2011-10-17 13:26:31

标签: .net c silverlight cryptography portable-class-library

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

我在一个使用System.Security.Cryptography命名空间

的类中有错误
  

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

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

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

4 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

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

  

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

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

  

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:1)

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

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

(截至2011-9-11)