Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
GetILGenerator, méthode (Int32)
Collapse the table of content
Expand the table of content
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

DynamicMethod.GetILGenerator, méthode (Int32)

Retourne un générateur MSIL (Microsoft Intermediate Language) pour la méthode, avec la taille de flux MSIL spécifiée.

Espace de noms :  System.Reflection.Emit
Assembly :  mscorlib (dans mscorlib.dll)

public ILGenerator GetILGenerator(
	int streamSize
)

Paramètres

streamSize
Type : System.Int32
Taille du flux MSIL en octets.

Valeur de retour

Type : System.Reflection.Emit.ILGenerator
Objet ILGenerator pour la méthode avec la taille de flux MSIL spécifiée.

Après avoir exécuté une méthode dynamique en appelant la méthode CreateDelegate ou Invoke, toute tentative supplémentaire d'ajouter le code MSIL est ignorée. Aucune exception n'est levée.

RemarqueRemarque

Il y a des restrictions sur le code non vérifiable dans les méthodes dynamiques, même dans certains scénarios de confiance totale. Consultez la section « Vérification » dans les remarques relatives à DynamicMethod.

L'exemple de code suivant illustre cette surcharge de méthode. Cet exemple de code fait partie d'un exemple plus complet fourni pour la classe DynamicMethod.


// Create an array that specifies the parameter types of the
// overload of Console.WriteLine to be used in Hello.
Type[] writeStringArgs = {typeof(string)};
// Get the overload of Console.WriteLine that has one
// String parameter.
MethodInfo writeString = typeof(Console).GetMethod("WriteLine", 
    writeStringArgs);

// Get an ILGenerator and emit a body for the dynamic method,
// using a stream size larger than the IL that will be
// emitted.
ILGenerator il = hello.GetILGenerator(256);
// Load the first argument, which is a string, onto the stack.
il.Emit(OpCodes.Ldarg_0);
// Call the overload of Console.WriteLine that prints a string.
il.EmitCall(OpCodes.Call, writeString, null);
// The Hello method returns the value of the second argument;
// to do this, load the onto the stack and return.
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Ret);


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft