MetadataLoadContext.CoreAssembly 속성

정의

Int32와 같이 잘 알려진 형식을 포함하는 "시스템 어셈블리"를 나타내는 어셈블리를 가져오거나 설정합니다.

public:
 property System::Reflection::Assembly ^ CoreAssembly { System::Reflection::Assembly ^ get(); };
public System.Reflection.Assembly CoreAssembly { get; }
public System.Reflection.Assembly? CoreAssembly { get; }
member this.CoreAssembly : System.Reflection.Assembly
Public ReadOnly Property CoreAssembly As Assembly

속성 값

Assembly

Assembly 인스턴스입니다.

설명

이러한 잘 알려진 형식에 대한 참조는 일반 형식과 달리 어셈블리 참조를 포함하지 않으므로 핵심 어셈블리는 다른 어셈블리와 다르게 처리됩니다.

일반적으로 이 어셈블리의 이름은 "mscorlib" 또는 "netstandard"입니다. 코어 어셈블리를 찾을 수 없는 경우 값이 되며 null메서드 시그니처를 구문 분석하는 메서드를 비롯한 다른 많은 리플렉션 메서드는 예외를 throw합니다.

생성 CoreAssembly 자에 전달된 매개 변수를 coreAssemblyName 메서드에 MetadataAssemblyResolver 전달하여 MetadataAssemblyResolver.Resolve 결정됩니다.

생성자에 MetadataLoadContext인수가 지정되지 않은 coreAssemblyName 경우 "mscorlib", "System.Runtime" 및 "netstandard"를 비롯한 기본값이 사용됩니다.

지정된 코어 어셈블리는 코어 형식을 직접 포함할 필요가 없습니다. 다른 어셈블리에 전달하도록 입력할 수 있습니다. 따라서 mscorlib 외관을 지정된 코어 어셈블리로 사용하는 것이 완벽하게 허용됩니다.

System.Runtime 다음과 같은 DllImportAttributeinterop 관련 의사 사용자 지정 특성 형식 중 일부를 제외하므로 이상적인 코어 어셈블리가 아닙니다. 그러나 이러한 특성에 관심이 없는 경우 사용할 수 있습니다. 핵심 어셈블리에 필요한 형식이 포함되지 않은 경우 CustomAttributes API는 해당 특성을 건너뜁니다.

코어 어셈블리는 필요할 때까지 로드되지 않습니다. 다음 API는 핵심 어셈블리에 대한 검색을 트리거하지 않습니다.

코어 어셈블리를 찾을 수 없거나 코어 어셈블리에 형식이 없는 경우 다음과 같은 동작에 MetadataLoadContext 영향을 줍니다.

  • 서명 또는 typespecs를 구문 분석하고 개체로 Type 결과를 반환해야 하는 API는 예외를 throw합니다. 예를 들면 다음과 같습니다.

  • 형식을 잘 알려진 핵심 형식과 비교해야 하는 API는 예외를 throw하지 않으며 비교가 평가 false됩니다. 예를 들어 코어 어셈블리 IsPrimitive 를 지정하지 않으면 이름이 지정된 Int32형식인 모든 항목에 대해 반환 false 됩니다. 마찬가지로, Type.GetTypeCode 모든 것을 반환 Object 합니다.

  • 메타데이터 엔터티가 의사 사용자 지정 특성으로 표시되는 플래그를 설정하고 핵심 어셈블리에 의사 사용자 지정 특성 형식, 필요한 생성자 또는 생성자의 MetadataLoadContext 매개 변수 형식이 포함되어 있지 않으면 throw되지 않습니다. 반환된 특성 목록에서 의사 사용자 지정 특성을 생략합니다.

적용 대상