MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Método

Definição

Devolve uma assembleia a partir de um dado nome de assembleia.

public:
 abstract System::Reflection::Assembly ^ Resolve(System::Reflection::MetadataLoadContext ^ context, System::Reflection::AssemblyName ^ assemblyName);
public abstract System.Reflection.Assembly? Resolve(System.Reflection.MetadataLoadContext context, System.Reflection.AssemblyName assemblyName);
abstract member Resolve : System.Reflection.MetadataLoadContext * System.Reflection.AssemblyName -> System.Reflection.Assembly
Public MustOverride Function Resolve (context As MetadataLoadContext, assemblyName As AssemblyName) As Assembly

Parâmetros

context
MetadataLoadContext

O objeto de contexto de carregamento de metadados que representa o universo fechado de Type objetos carregados apenas para fins de inspeção.

assemblyName
AssemblyName

O nome da assembleia.

Devoluções

A montagem para o fornecido assemblyName.

Observações

Associar um nome de montagem a um conjunto ocorre quando LoadFromAssemblyName é chamado ou quando um tipo de um conjunto tem dependência de outro monte. O handler que sobrescreve Resolve deve usar MetadataLoadContext.LoadFromStream, MetadataLoadContext.LoadFromAssemblyPath ou MetadataLoadContext.LoadFromByteArray para carregar a montagem solicitada e devolvê-la.

Para indicar a falha em encontrar uma montagem, o handler deve retornar null em vez de lançar uma exceção. O retorno null compromete a falha, de modo que futuras tentativas de carregar esse nome falham sem que seja necessário reativar o handler.

Se o handler lançar uma exceção, a exceção será passada para a aplicação que invocou a operação que desencadeou a ligação. Eles MetadataLoadContext não o apanharão, e não ocorrerá nenhuma ligação.

O handler geralmente não será chamado mais do que uma vez pelo mesmo nome, a menos que duas threads corram a carregar a mesma montagem. Mesmo nesse caso, um resultado vencerá e ficará atómicamente ligado ao nome.

A equipa MetadataLoadContext intencionalmente não realiza correspondência de ref-def na montagem devolvida, pois o que constitui uma correspondência ref-def é uma política. É também o tipo de restrição arbitrária que MetadataLoadContext procura evitar.

Não MetadataLoadContext podem consumir assemblies de outros contextos de carregamento de metadados ou outros fornecedores de tipos (como o próprio sistema de reflexão do runtime subjacente). Se um manipulador devolver tal montagem, o MetadataLoadContext lança um FileLoadException.

Aplica-se a