Aracılığıyla paylaş


MetadataLoadContext.CoreAssembly Özellik

Tanım

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 nullve 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:

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.

Şunlara uygulanır