Как использовать пространство имен для ограниченной части кода - PullRequest
0 голосов
/ 02 июля 2019

Я хочу использовать namespace System.Security.Cryptography, но только для ограниченной части кода, так что если я попытаюсь использовать classes или function пространства имен вне определенной области, он не будет работать. результат, который я ожидаю, похож на оператор using в types, но с namespaces.

вот пример кода для демонстрации того, что я хочу:

using(System.Security.Cryptography;){
// namespace can be used from now on
            using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
            {
                UTF8Encoding utf8 =new UTF8Encoding();
                byte[] data = md5.ComputeHash(utf8.GetBytes(input));
                return Convert.ToBase64String(data);
            }
}
//now namespace can not be used- error if you are trying to use it

можно ли это сделать и как?

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Поместите его в использование или просто используйте, например ,::1001*

System.Security.Cryptography.MD5CryptoServiceProvider

Тогда использовать не нужно.

Моя точка зрения:

 using (System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider())
 {
     System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding();
     byte[] data = md5.ComputeHash(utf8.GetBytes(input));
     return Convert.ToBase64String(data);
 }

Надеюсь, вы получите это сейчас:)

0 голосов
/ 02 июля 2019

Я предлагаю использовать полное имя System.Security.Cryptography.MD5CryptoServiceProvider вместо using + короткое имя (MD5CryptoServiceProvider):

  // var - let compiler derive the type
  using (var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider())
  {
      UTF8Encoding utf8 = new UTF8Encoding();
      byte[] data = md5.ComputeHash(utf8.GetBytes(input));
      return Convert.ToBase64String(data);
  }

Если вы сделаете это, вы не будетенадо поставить using System.Security.Cryptography; на все

...