MetadataLoadContext.CoreAssembly Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
gibi Int32iyi bilinen türleri barındıran "sistem derlemesini" belirten derlemeyi alır veya ayarlar.
public:
property System::Reflection::Assembly ^ CoreAssembly { System::Reflection::Assembly ^ get(); };
public System.Reflection.Assembly? CoreAssembly { get; }
member this.CoreAssembly : System.Reflection.Assembly
Public ReadOnly Property CoreAssembly As Assembly
Özellik Değeri
Bir Assembly örnek.
Açıklamalar
Bu iyi bilinen türlere yapılan başvurular normal türlerden farklı olarak derleme başvurularını içermediğinden, çekirdek derleme diğer derlemelerden farklı olarak değerlendirilir.
Bu derleme genellikle "mscorlib" veya "netstandard" olarak adlandırılır. Çekirdek derleme bulunamazsa, değer olur null
ve yöntem imzalarını ayrıştıranlar da dahil olmak üzere diğer birçok yansıma yöntemi bir özel durum oluşturur.
CoreAssembly
, oluşturucuya geçirilen parametre yöntemine MetadataAssemblyResolverMetadataAssemblyResolver.Resolve geçirilerek coreAssemblyName
belirlenir.
oluşturucusunda MetadataLoadContexthiçbir coreAssemblyName
bağımsız değişken belirtilmemişse, "mscorlib", "System.Runtime" ve "netstandard" gibi varsayılan değerler kullanılır.
Belirlenen çekirdek derlemenin çekirdek türlerini doğrudan içermesi gerekmez. Bunları diğer derlemelere iletebilir. Bu nedenle, mscorlib cephesini belirlenen çekirdek montaj olarak kullanmak mükemmel bir şekilde izin verilir.
System.Runtime gibi DllImportAttributebirlikte çalışmayla ilgili sahte özel öznitelik türlerinden bazılarını dışladığı için ideal bir çekirdek derleme olmadığını unutmayın. Ancak, bu özniteliklere ilginiz yoksa hizmet verebilir. Çekirdek derleme gerekli türleri içermiyorsa CustomAttributes API'si bu öznitelikleri atlar.
Çekirdek derleme gerekli olana kadar yüklenmez. Aşağıdaki API'ler çekirdek derleme aramasını tetiklemez:
- MetadataLoadContext.LoadFromStream
- MetadataLoadContext.LoadFromAssemblyPath
- MetadataLoadContext.LoadFromByteArray
- Assembly.GetName
- Assembly.FullName
- Assembly.GetReferencedAssemblies
- Assembly.GetTypes
- Assembly.DefinedTypes
- Assembly.GetExportedTypes
- Assembly.GetForwardedTypes
- Assembly.GetType(String, Boolean, Boolean)
- Type.Name
- Type.FullName
- Type.AssemblyQualifiedName
Bir çekirdek derleme bulunamazsa veya çekirdek derlemenin türleri eksikse, bu, öğesinin MetadataLoadContext davranışını aşağıdaki gibi etkiler:
İmzaları veya tür türlerini ayrıştırması ve nesneler olarak Type sonuçları döndürmesi gereken API'ler özel durum oluşturur. Örnek:
Türleri iyi bilinen çekirdek türleriyle karşılaştırması gereken API'ler özel durum oluşturmaz ve karşılaştırma olarak değerlendirilir
false
. Örneğin, bir çekirdek derleme belirtmezseniz, IsPrimitive adlı Int32türler bile olmak üzere her şey için döndürülecektirfalse
. Benzer şekilde, Type.GetTypeCode her şey için geri döner Object .Meta veri varlığı, yüzeye sahte özel öznitelik olarak bayraklar ayarlarsa ve çekirdek derleme sözde özel öznitelik türünü, gerekli oluşturucuyu veya oluşturucunun parametre türlerinden herhangi birini içermiyorsa, MetadataLoadContext oluşturmaz. Döndürülen öznitelikler listesinden sözde özel özniteliği atlar.