Indicates that the modified instance of a variable differs from its true type when marshaling. This class cannot be inherited.
See Also: CompilerMarshalOverride Members
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.