ILGenerator Sınıf
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.
Microsoft ara dil (MSIL) yönergeleri oluşturur.
public ref class ILGenerator abstract
public ref class ILGenerator
public ref class ILGenerator : System::Runtime::InteropServices::_ILGenerator
public abstract class ILGenerator
public class ILGenerator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class ILGenerator : System.Runtime.InteropServices._ILGenerator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ILGenerator : System.Runtime.InteropServices._ILGenerator
type ILGenerator = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type ILGenerator = class
interface _ILGenerator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ILGenerator = class
interface _ILGenerator
Public MustInherit Class ILGenerator
Public Class ILGenerator
Public Class ILGenerator
Implements _ILGenerator
- Devralma
-
ILGenerator
- Öznitelikler
- Uygulamalar
Açıklamalar
ILGenerator, dinamik derlemelerdeki yöntemler ve oluşturucular için (ve MethodBuilder sınıfları tarafından ConstructorBuilder temsil edilir) ve tek başına dinamik yöntemler (sınıf tarafından DynamicMethod temsil edilir) için yöntem gövdeleri oluşturmak için kullanılır. bir almak ILGeneratoriçin , ConstructorBuilder.GetILGeneratorve DynamicMethod.GetILGenerator yöntemlerini kullanınMethodBuilder.GetILGenerator.
MSIL, tam zamanında (JIT) derleyiciye giriş olarak kullanılır.
Warning
IL yöntemi oluşturan ILGenerator API'leri için temel doğrulama dışında herhangi bir kısıtlama yoktur. IL üretmek için güvenilmeyen giriş kullanılıyorsa:
- IL ve meta veriler, tüketici tarafından sağlanan gizli dizileri içerebilir.
- IL, dengeli gönderme ve pop opcode'lara sahip olmaması veya belirli bir opcode için geçersiz işlenenler olması gibi geçersiz olabilir.
- IL, kilitlenme, sonsuz yığın özyinelemesi veya sonsuz döngüye sahip olabilecek herhangi bir kod içerebilir.
- IL, diğer erişilebilir tüm derlemelerde kodu yükleyebilir ve yürütebilir.
Bu tür kod, yöntem yüklendiğinde ve yürütülürken istediğini yapabilir. Bu tür güvenlik açıklarına karşı koruma sağlamak için, ILGenerator güvenilir girişe sahip tam güvenilir bir ortam gerekir.
Oluşturucular
| Name | Description |
|---|---|
| ILGenerator() |
ILGenerator sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| ILOffset |
tarafından ILGeneratoryayılan Microsoft ara dil (MSIL) akışında bayt cinsinden geçerli uzaklığı alır. |
Yöntemler
| Name | Description |
|---|---|
| BeginCatchBlock(Type) |
Yakalama bloğunu başlatır. |
| BeginExceptFilterBlock() |
Filtrelenmiş özel durum için bir özel durum bloğu başlatır. |
| BeginExceptionBlock() |
Filtrelenmemiş bir özel durum için özel durum bloğu başlatır. |
| BeginFaultBlock() |
Microsoft ara dil (MSIL) akışında bir özel durum hata bloğu başlatır. |
| BeginFinallyBlock() |
Microsoft ara dil (MSIL) yönerge akışında finally bloğunu başlatır. |
| BeginScope() |
Sözcük temelli bir kapsam başlatır. |
| CreateLabel(Int32) |
Verilen kimlikle bir Label oluşturur. |
| DeclareLocal(Type, Boolean) |
Belirtilen türün yerel değişkenini bildirir ve isteğe bağlı olarak değişkeni tarafından başvuruda bulunılan nesneyi sabitler. |
| DeclareLocal(Type) |
Belirtilen türde bir yerel değişken bildirir. |
| DefineLabel() |
Yeni bir etiket bildirir. |
| Emit(OpCode, Byte) |
Belirtilen yönerge ve karakter bağımsız değişkenini Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, ConstructorInfo) |
Belirtilen oluşturucu için belirtilen yönergeyi ve meta veri belirtecini Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, Double) |
Belirtilen yönergeyi ve sayısal bağımsız değişkeni Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, FieldInfo) |
Belirtilen alan için belirtilen yönergeyi ve meta veri belirtecini Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, Int16) |
Belirtilen yönergeyi ve sayısal bağımsız değişkeni Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, Int32) |
Belirtilen yönergeyi ve sayısal bağımsız değişkeni Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, Int64) |
Belirtilen yönergeyi ve sayısal bağımsız değişkeni Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, Label) |
Belirtilen yönergeyi Microsoft ara dil (MSIL) akışına yerleştirir ve düzeltmeler yapıldığında etiket eklemek için alan bırakır. |
| Emit(OpCode, Label[]) |
Belirtilen yönergeyi Microsoft ara dil (MSIL) akışına yerleştirir ve düzeltmeler yapıldığında etiket eklemek için alan bırakır. |
| Emit(OpCode, LocalBuilder) |
Belirtilen yönergeyi Microsoft ara dil (MSIL) akışına ve ardından verilen yerel değişkenin dizinine yerleştirir. |
| Emit(OpCode, MethodInfo) |
Belirtilen yönergeyi Microsoft ara dil (MSIL) akışına ve ardından verilen yöntemin meta veri belirtecine yerleştirir. |
| Emit(OpCode, SByte) |
Belirtilen yönerge ve karakter bağımsız değişkenini Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, SignatureHelper) |
Belirtilen yönergeyi ve imza belirtecini Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, Single) |
Belirtilen yönergeyi ve sayısal bağımsız değişkeni Microsoft ara dil (MSIL) yönergeleri akışına yerleştirir. |
| Emit(OpCode, String) |
Belirtilen yönergeyi Microsoft ara dil (MSIL) akışına ve ardından verilen dize için meta veri belirtecine yerleştirir. |
| Emit(OpCode, Type) |
Belirtilen yönergeyi Microsoft ara dil (MSIL) akışına ve ardından verilen tür için meta veri belirtecine yerleştirir. |
| Emit(OpCode) |
Belirtilen yönergeyi yönergelerin akışına yerleştirir. |
| EmitCall(OpCode, MethodInfo, Type[]) |
|
| EmitCalli(OpCode, CallingConvention, Type, Type[]) |
Calli yönergesini Microsoft ara dil (MSIL) akışına yerleştirir ve dolaylı çağrı için yönetilmeyen bir çağrı kuralı belirtir. |
| EmitCalli(OpCode, CallingConventions, Type, Type[], Type[]) |
Calli yönergesini Microsoft ara dil (MSIL) akışına yerleştirir ve dolaylı çağrı için yönetilen bir çağrı kuralı belirtir. |
| EmitCalli(Type) |
Microsoft ara dil (MSIL) yönergeleri oluşturur. |
| EmitWriteLine(FieldInfo) |
Verilen alanla WriteLine çağırmak için gereken Microsoft ara dili (MSIL) yayar. |
| EmitWriteLine(LocalBuilder) |
Verilen yerel değişkenle WriteLine çağırmak için gereken Microsoft ara dili (MSIL) yayar. |
| EmitWriteLine(String) |
WriteLine bir dizeyle çağırmak için Microsoft ara dili (MSIL) yayar. |
| EndExceptionBlock() |
Bir özel durum bloğunu sonlandırır. |
| EndScope() |
Sözcük temelli bir kapsamı sona erdirir. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MarkLabel(Label) |
Microsoft ara dil (MSIL) akışının geçerli konumunu verilen etiketle işaretler. |
| MarkSequencePoint(ISymbolDocumentWriter, Int32, Int32, Int32, Int32) |
Microsoft ara dil (MSIL) akışındaki bir sıra noktasını işaretler. |
| MarkSequencePointCore(ISymbolDocumentWriter, Int32, Int32, Int32, Int32) |
Türetilmiş bir sınıfta geçersiz kılındığında, Microsoft ara dil (MSIL) akışındaki bir dizi noktasını işaretler. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ThrowException(Type) |
Özel durum oluşturma yönergesi gösterir. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| UsingNamespace(String) |
Geçerli etkin sözcük kapsamı için yerel değerleri ve izleyicileri değerlendirirken kullanılacak ad alanını belirtir. |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| _ILGenerator.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler. |
| _ILGenerator.GetTypeInfo(UInt32, UInt32, IntPtr) |
Bir nesne için tür bilgilerini alır ve bu da bir arabirimin tür bilgisini almak için kullanılabilir. |
| _ILGenerator.GetTypeInfoCount(UInt32) |
Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1). |
| _ILGenerator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar. |