Ler em inglês

Compartilhar via


ResolveEventArgs.RequestingAssembly Propriedade

Definição

Obtém o assembly cuja dependência está sendo resolvida.

C#
public System.Reflection.Assembly? RequestingAssembly { get; }
C#
public System.Reflection.Assembly RequestingAssembly { get; }

Valor da propriedade

O assembly que solicitou o item especificado pela propriedade Name.

Comentários

O assembly retornado por essa propriedade é um assembly que não pôde resolve o item especificado pela Name propriedade , porque o item não existia nesse assembly, em nenhuma de suas dependências carregadas ou em nenhuma dependência que o carregador pudesse encontrar por meio de investigação.

Por exemplo, suponha que o assembly atual use o método para carregar o Assembly.LoadFile assembly A de um diretório fora do caminho de investigação, a fim de usar a AC de classe. Suponha ainda que a AC de classe use a classe CB, no assembly B, e que o assembly A tenha uma referência em tempo de compilação para o assembly B, também localizado fora do caminho de investigação. Quando o assembly atual tenta instanciar a AC, o carregador tenta resolve a referência ao assembly B. No entanto, como o assembly A foi carregado usando o Assembly.LoadFile método , o carregador não pode resolve a dependência. Se houver um manipulador para o AppDomain.AssemblyResolve evento, o evento será gerado e a RequestingAssembly propriedade do objeto resultante ResolveEventArgs conterá o assembly A, pois o assembly A é o assembly que não tem uma dependência.

A semântica da RequestingAssembly propriedade varia, dependendo de como o assembly solicitante foi carregado:

  • Contexto de carga: o valor da propriedade pode ser null. O contexto de carga é independente de ordem de carga e a identidade do assembly solicitante não é necessariamente significativa. Um exemplo não nulo ocorre quando o Type.GetType método é chamado e o tipo especificado não é conhecido pelo assembly solicitante ou qualquer uma de suas dependências.

  • Contexto de carregamento: a propriedade pode ser usada como uma dica de investigação, mas o manipulador de eventos não deve obter mais de uma solicitação para um determinado nome de assembly.

  • Nenhum contexto (ou seja, o assembly solicitante foi carregado usando o Assembly.LoadFile método ou como um fluxo de bytes ou no modo misto): o manipulador pode usar a RequestingAssembly propriedade para carregar implementações diferentes do mesmo assembly com base na identidade do assembly solicitante.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Confira também