System.Runtime.CompilerServices.CompilerMarshalOverride Class

Indicates that the modified instance of a variable differs from its true type when marshaling. This class cannot be inherited.

See Also: CompilerMarshalOverride Members


public static class CompilerMarshalOverride


The System.Runtime.CompilerServices.CompilerMarshalOverride class allows the common language runtime to marshal using the correct sizes.

Some behaviors of the common language runtime are incompatible with some languages. For example, C++ treats Boolean variables as single-byte values, while the common language runtime marshals them as four-byte values to match the BOOLEAN type defined by the Microsoft Win32 API. To work around such issues, the C++ compiler emits this modifier on any wchar_t or bool parameter or function return.


Namespace: System.Runtime.CompilerServices
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions:,
Since: .NET 2.0