Partilhar via


MetadataReference.CreateFromStream Método

Definição

Cria uma referência a um assembly de módulo único ou a um módulo autônomo a partir de dados no fluxo especificado. Lê o conteúdo do fluxo na memória e fecha o fluxo após o retorno.

public static Microsoft.CodeAnalysis.PortableExecutableReference CreateFromStream (System.IO.Stream peStream, Microsoft.CodeAnalysis.MetadataReferenceProperties properties = default, Microsoft.CodeAnalysis.DocumentationProvider documentation = default, string filePath = default);
public static Microsoft.CodeAnalysis.PortableExecutableReference CreateFromStream (System.IO.Stream peStream, Microsoft.CodeAnalysis.MetadataReferenceProperties properties = default, Microsoft.CodeAnalysis.DocumentationProvider? documentation = default, string? filePath = default);
static member CreateFromStream : System.IO.Stream * Microsoft.CodeAnalysis.MetadataReferenceProperties * Microsoft.CodeAnalysis.DocumentationProvider * string -> Microsoft.CodeAnalysis.PortableExecutableReference
Public Shared Function CreateFromStream (peStream As Stream, Optional properties As MetadataReferenceProperties = Nothing, Optional documentation As DocumentationProvider = Nothing, Optional filePath As String = Nothing) As PortableExecutableReference

Parâmetros

peStream
Stream

Imagem do assembly.

properties
MetadataReferenceProperties

Propriedades de referência (aliases extern, inserção de tipo, MetadataImageKind).

documentation
DocumentationProvider

Fornece a documentação XML para o símbolo encontrado na referência.

filePath
String

Caminho opcional que descreve o local dos metadados. O arquivo não precisa existir no disco. O caminho é opaco para o compilador.

Retornos

Exceções

peStream não é compatível com as operações de leitura e busca.

peStream é nulo.

Erro ao ler o fluxo.

Comentários

Considerações sobre desempenho:

É recomendável usar CreateFromStream(Stream, PEStreamOptions) ou CreateFromStream(Stream, PEStreamOptions) API ao criar várias referências aos mesmos metadados. Reutilizando Metadata o objeto para criar várias referências permite o compartilhamento de dados entre essas referências.

O método lê ansiosamente todo o conteúdo do peStream heap nativo. O bloco de memória nativa é liberado quando a referência resultante se torna inacessível e o GC o coleta. Para diminuir o volume de memória da referência e/ou gerenciar o tempo de vida deterministicamente usado CreateFromStream(Stream, PEStreamOptions) para criar um IDisposable objeto de metadados e GetReference(DocumentationProvider, ImmutableArray<String>, Boolean, String, String) para obter uma referência a ele.

Aplica-se a