MethodBuilder.SetMarshal(UnmanagedMarshal) Méthode

Définition

Attention

An alternate API is available: Emit the MarshalAs custom attribute instead. http://go.microsoft.com/fwlink/?linkid=14202

Définit les informations de marshaling pour le type de retour de cette méthode.

C#
public void SetMarshal (System.Reflection.Emit.UnmanagedMarshal unmanagedMarshal);
C#
[System.Obsolete("An alternate API is available: Emit the MarshalAs custom attribute instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public void SetMarshal (System.Reflection.Emit.UnmanagedMarshal unmanagedMarshal);

Paramètres

unmanagedMarshal
UnmanagedMarshal

Informations de marshaling pour le type de retour de cette méthode.

Attributs

Exceptions

Le type conteneur a déjà été créé à l’aide de CreateType().

- ou -

Pour la méthode actuelle, la propriété IsGenericMethod est true, mais la propriété IsGenericMethodDefinition est false.

Exemples

L’exemple de code ci-dessous illustre l’utilisation contextuelle de la SetMarshal méthode pour marshaler les résultats d’un appel de méthode en tant que type différent.

C#

MethodBuilder myMethod = myDynamicType.DefineMethod("MyMethodReturnsMarshal",
                    MethodAttributes.Public,
                    typeof(uint),
                    new Type[] { typeof(string) });

// We want the return value of our dynamic method to be marshalled as
// an 64-bit (8-byte) signed integer, instead of the default 32-bit
// unsigned int as specified above. The UnmanagedMarshal class can perform
// the type conversion.

UnmanagedMarshal marshalMeAsI8 = UnmanagedMarshal.DefineUnmanagedMarshal(
                     System.Runtime.InteropServices.UnmanagedType.I8);	

myMethod.SetMarshal(marshalMeAsI8);

S’applique à

Produit Versions (Obsolète)
.NET Framework 1.1 (2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)