9

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

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

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

此命名空间在 Silverlight 中可用,我想知道为什么可移植类库不支持它?

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

4

4 回答 4

8

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

于 2012-02-25T20:03:37.503 回答
4

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

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

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

此命名空间在 Silverlight 中可用,我想知道为什么可移植类库不支持它?

我不能肯定地说;但在 XNA 下,XBox 360 平台似乎确实缺少它。即便如此,我相信你的结论是正确的——它不是一个在前端非常流行的 API。那么底层代码也是非常不可移植的。Crypto 命名空间的很大一部分是通过 P/Invoking 到操作系统来完成的。我怀疑他们可以像使用 Silverlight 一样使其便携。但这可能还没有引起他们的注意。

于 2011-10-17T13:40:07.503 回答
4

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

于 2015-06-29T01:05:01.360 回答
1

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

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

(截至 2011 年 9 月 11 日)

于 2011-11-09T16:03:22.283 回答