Не доступен в этом контексте, потому что это друг - PullRequest
3 голосов
/ 16 марта 2020

Я извлек код из другого C# проекта и преобразовал его в vb, но теперь я получаю сообщение об ошибке:

Is not accessible in this context because it is friend

Imports System.Security.Cryptography  

Public Shared Sub Sign()
  CryptoConfig.AddAlgorithm(GetType(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2000/09/xmldsig-more#rsa-sha256")
End Sub

enter image description here

Требуемое пространство имен - System.Deployment.Internal.CodeSigning, но в этом пространстве имен нет RSAPKCS1SHA256SignatureDescription.

Импортируемое пространство имен - System.Security.Cryptography, но Я начинаю думать, что это происходит от неправильной библиотеки.

Imports System.Security.Cryptography

Namespace System.Security.Cryptography
  Friend Class RSAPKCS1SHA256SignatureDescription
    Inherits RSAPKCS1SignatureDescription
    Public Sub New()
  End Class
End Namespace

Может ли кто-нибудь предложить понимание этого сообщения об ошибке?

Эта ошибка не свидетельствует о том, что Microsoft говорит, что это:

Идентификатор ошибки : BC30389

https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc30389


1 Ответ

2 голосов
/ 16 марта 2020

Обратите внимание, как сообщение об ошибке относится к System.Security.Cryptography.RSAPKCS1SHA256SignatureDescription? Это класс, на который ссылается ваш код, и этот класс объявлен Friend, поэтому вы не можете его использовать. Если вам нужен класс System.Deployment.Internal.CodeSigning.RSAPKCS1SHA256SignatureDescription, то это пространство имен, которое необходимо импортировать.


Пространство имен System.Deployment сначала необходимо добавить в ваш проект, чтобы ссылаться на библиотеки Internal.CodeSigning.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...