MethodBuilder.SetMarshal(UnmanagedMarshal) Yöntem

Tanım

Dikkat

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

Bu yöntemin dönüş türü için hazırlama bilgilerini ayarlar.

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);

Parametreler

unmanagedMarshal
UnmanagedMarshal

Bu yöntemin dönüş türü için hazırlama bilgileri.

Öznitelikler

Özel durumlar

İçeren tür daha önce kullanılarak CreateType()oluşturulmuştur.

-veya-

Geçerli yöntem IsGenericMethod için özelliği şeklindedir true, ancak IsGenericMethodDefinition özelliği şeklindedir false.

Örnekler

Aşağıdaki kod örneği, yöntem çağrısının SetMarshal sonuçlarını farklı bir tür olarak sıralamak için yönteminin bağlamsal kullanımını gösterir.

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);

Şunlara uygulanır

Ürün Sürümler (Kullanım dışı)
.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)