Поделиться через


MetadataReference.CreateFromStream Метод

Определение

Создает ссылку на сборку с одним модулем или автономный модуль из данных в указанном потоке. Считывает содержимое потока в память и закрывает поток по возвращении.

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

Параметры

peStream
Stream

Изображение сборки.

properties
MetadataReferenceProperties

Ссылочные свойства (псевдонимы extern, внедрение типов, MetadataImageKind).

documentation
DocumentationProvider

Предоставляет XML-документацию по символам, найденным в ссылке.

filePath
String

Необязательный путь, описывающий расположение метаданных. Файл не должен существовать на диске. Путь непрозрачн к компилятору.

Возвращаемое значение

Исключения

peStream не поддерживает операции чтения и поиска.

Параметр peStream имеет значение null.

Произошла ошибка при чтении потока.

Комментарии

Вопросы производительности:

Рекомендуется использовать или CreateFromStream(Stream, PEStreamOptions) API CreateFromStream(Stream, PEStreamOptions) при создании нескольких ссылок на одни и те же метаданные. Повторное использование Metadata объекта для создания нескольких ссылок позволяет совместно использовать данные между этими ссылками.

Метод с нетерпением считывает все содержимое peStream в собственную кучу. Собственный блок памяти освобождается, когда результирующая ссылка становится недоступной, и сборщик мусора собирает его. Чтобы уменьшить объем памяти ссылки и (или) управлять временем существования детерминированным способом использования CreateFromStream(Stream, PEStreamOptions) для создания IDisposable объекта метаданных и GetReference(DocumentationProvider, ImmutableArray<String>, Boolean, String, String) получения ссылки на него.

Применяется к