2012-06-25 2 views
7

Я копировать-вставить из MSDN этого кода:SHA1 (и все имена Cryptography) отсутствует в Visual Studio 2012

using System.Security.Cryptography; 

byte[] buffer = enc.GetBytes(text); 
SHA1CryptoServiceProvider cryptoTransformSHA1 = 
      new SHA1CryptoServiceProvider(); 
string hash = BitConverter.ToString(
      cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", ""); 

return hash; 

но VS говорит, что нет таких Cryptography пространства имен, таким образом, нет SHA1CryptoServiceProvider класса.

Что я делаю неправильно?

Я использую Visual Studio Professional 2012 RC с лицензией Dreamspark в Windows 8 Release Preview.

+0

Вы можете указать ссылку на этот код? – aliboy38

+0

это есть. См. MSDn http://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx –

+0

, возможно, не объяснил сам, я имел в виду, что VS говорит, что он не может найти этот класс или namespace –

ответ

5

я понимаю, что вы пытаетесь создать приложение Metro? Приложения в стиле Metro не поддерживают пространство имен System.Security.Cryptography. Полный список поддерживаемых пространств имен .NET API для приложений Metro можно найти here.

ОБНОВЛЕНИЕ 29 июня

Как Гильермо указал, однако, существует Windows.Security.Cryptograhy.Core пространства имен, которое содержит HashAlgorithmProvider класса, где например может применяться алгоритм SHA1.

+2

Как это возможно? Означает ли это, что если я хочу приложение Metro, я больше не могу использовать SHA-1? – sharptooth

5

Ответ, как и Андерс Густафссон, указал, что в Метро System.Security.Cryptography не поддерживается. НО у вас есть Windows.Security.Cryptography.

+0

Да, я видел это, но в первый раз не смотрел достаточно близко. Спасибо, что указали это. Я обновил свой ответ с некоторыми ссылками на документацию MSDN для полноты. –

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