Yansıma (C#)

Yansıma Type derlemeleri, modülleri ve türleri tanımlayan nesneler (türü) sağlar. Bir türün örneğini dinamik olarak oluşturmak, türü var olan bir nesneye bağlamak veya var olan bir nesneden türü almak ya da onun yöntemlerini çağırmak ya da alanları ve özelliklerine erişmek için yansıma kullanabilirsiniz. Kodunuzda öznitelikler kullanıyorsanız, yansıma bunlara erişmenizi sağlar. Daha fazla bilgi için bkz. öznitelikler.

GetType() Object Bir değişkenin türünü almak için temel sınıftan tüm türler tarafından devralınan yöntemi kullanan basit bir yansıma örneği aşağıda verilmiştir:

Not

using System; using System.Reflection; . Cs dosyanızın üst kısmına ve eklediğinizden emin olun.

// Using GetType to obtain type information:
int i = 42;
Type type = i.GetType();
Console.WriteLine(type);

Çıktı: System.Int32 .

Aşağıdaki örnek, yüklü derlemenin tam adını almak için yansıma kullanır.

// Using Reflection to get information of an Assembly:
Assembly info = typeof(int).Assembly;
Console.WriteLine(info);

Çıktı: System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e .

Not

C# anahtar sözcükleri protected ve internal Ara DIL (IL) içinde hiçbir anlamı yoktur ve yansıma API 'lerinde kullanılmaz. Il 'deki ilgili terimler Aile ve derlemedir. internalYansıma kullanarak bir yöntemi tanımlamak için IsAssembly özelliğini kullanın. Bir yöntemi tanımlamak için protected internal öğesini kullanın IsFamilyOrAssembly .

Yansımaya genel bakış

Aşağıdaki durumlarda yansıma yararlı olur:

Daha fazla bilgi için:

Ayrıca bkz.