다음을 통해 공유


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) 하거나 CreateFromStream(Stream, PEStreamOptions) API를 사용하는 것이 좋습니다. 개체를 Metadata 다시 사용하여 여러 참조를 만들면 이러한 참조 간에 데이터를 공유할 수 있습니다.

이 메서드는 전체 콘텐츠를 peStream 네이티브 힙으로 열심히 읽습니다. 네이티브 메모리 블록은 결과 참조에 연결할 수 없게 되고 GC에서 수집할 때 해제됩니다. 참조의 메모리 공간을 줄이거나 수명을 관리하려면 메타데이터 개체 GetReference(DocumentationProvider, ImmutableArray<String>, Boolean, String, String)IDisposable 만들고 참조를 가져오는 데 결정적으로 사용합니다CreateFromStream(Stream, PEStreamOptions).

적용 대상