Assemblies Autorizados (Visual Basic)
Um assembly autorizado é um assembly que tem permissão de acessar outro conjunto de tipos e membros Friend .(Para obter mais informações, consulte Amigo (Visual Basic).) Se você identificar um assembly como um assembly autorizado, você não precisará mais marcar tipos e membros como público na ordem para que eles sejam acessados por outros assemblies.Isso é conveniente principalmente nas seguintes situações:
Durante testes de unidade, quando o código de teste é executado em um assembly separado mas requer acesso a membros no assembly que está sendo testado e que é marcado como Friend.
Quando você estiver desenvolvendo um biblioteca de classes e adições à biblioteca estão contidas em conjuntos separados, mas precisam acessar os membros existentes conjuntos de assemblies que estejam marcados como Friend.
Comentários
Você pode usar o atributo InternalsVisibleToAttribute para identificar um ou mais assemblies autorizados para um determinado assembly.Por exemplo, se você incluiu o atributo InternalsVisibleToAttribute no assembly A e especificar assembly B como um assembly autorizado, assembly B terá acesso a todos os tipos e membros no assembly A que estejam marcados como Friend, conforme mostrado no exemplo o seguir.
Imports System.Runtime.CompilerServices
<Assembly: InternalsVisibleTo("FriendAssembliesB")>
' Friend class.
Friend Class FriendAssembliesA
Public Sub Test()
MsgBox("Friend Assemblies Sample Class")
End Sub
End Class
' Public class with a Friend method.
Public Class FriendAssembliesClassA
Friend Sub Test()
MsgBox("Friend Assemblies Sample Method")
End Sub
End Class
Apenas assemblies que você especificar explicitamente como autorizados podem acessar tipos e membros Friend.Por exemplo, se assembly B é um amigo do assemblyA e assembly C refere-se ao assembly B , C não tem acesso a tipos Friend em A.
O compilador executa algumas validações básicas do nome do assembly autorizado passado para o atributo InternalsVisibleToAttribute.Se assembly A declara B como uma assembly autorizado, as regras de validação são como a seguir:
Se assembly A for nomeado forte, assembly B deve também ser nomeado forte.O nome do assembly autorizado que é passado ao atributo deve consistir do nome do assembly e da chave pública da chave do nome forte que é usada para sinalizar assembly B .
O nome do assembly amigo que é passado para o InternalsVisibleToAttribute atributo não pode ser o nome forte do assembly B: não inclua a versão do assembly, cultura, arquitetura ou token de chave pública.
Se assembly A não for nomeado forte, o nome do assembly autorizado deve consistir somente o nome do assembly.Para obter mais informações, consulte Como: Criar Friend Assemblies não assinado.
Se assembly B for nomeado forte, especifique a chave de nome fortee para assembly B usando a configuração do projeto ou a linha de comando opção de compilador /keyfile.Para obter mais informações, consulte Como: Criar assinado Friend Assemblies.
Para obter informações sobre como acessar um assembly Friend tipos e métodos de um arquivo de módulo (um arquivo com o. extensão netmodule), consulte /moduleassemblyname.
Observação de segurança: |
---|
Existem semelhanças entre as InternalsVisibleToAttribute atributo e o StrongNameIdentityPermission classe. A principal diferença é que StrongNameIdentityPermission pode solicitar permissões de segurança para executar uma determinada seção de código, enquanto o atributo InternalsVisibleToAttribute controla a visibilidade dos tipos e membros Friend. |
Consulte também
Tarefas
Como: Criar Friend Assemblies não assinado
Como: Criar assinado Friend Assemblies
Conceitos
Conjuntos de Módulos (Assemblies)
Referência
Vinculador do conjunto (AL.exe)