-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
DisableRuntimeMarshallingAttribute.xml
64 lines (60 loc) · 3.6 KB
/
DisableRuntimeMarshallingAttribute.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<Type Name="DisableRuntimeMarshallingAttribute" FullName="System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute">
<TypeSignature Language="C#" Value="public sealed class DisableRuntimeMarshallingAttribute : Attribute" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit DisableRuntimeMarshallingAttribute extends System.Attribute" />
<TypeSignature Language="DocId" Value="T:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute" />
<TypeSignature Language="VB.NET" Value="Public NotInheritable Class DisableRuntimeMarshallingAttribute
Inherits Attribute" />
<TypeSignature Language="F#" Value="type DisableRuntimeMarshallingAttribute = class
 inherit Attribute" />
<TypeSignature Language="C++ CLI" Value="public ref class DisableRuntimeMarshallingAttribute sealed : Attribute" />
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Attribute</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName Language="C#">[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]</AttributeName>
<AttributeName Language="F#">[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Disables the built-in runtime managed/unmanaged marshalling subsystem for P/Invokes, Delegate types, and unmanaged function pointer invocations.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The built-in marshalling subsystem has some behaviors that cannot be changed due to backward-compatibility requirements. This attribute allows disabling the built-in subsystem and instead uses the following rules for P/Invokes, Delegates, and unmanaged function pointer invocations:
- All value types that do not contain reference type fields recursively (`unmanaged` in C#) are blittable.
- Value types that recursively have any fields that have `[StructLayout(LayoutKind.Auto)]` are disallowed from interop.
- All reference types are disallowed from usage in interop scenarios.
- SetLastError support in P/Invokes is disabled.
- varargs support is disabled.
- LCIDConversionAttribute support is disabled.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public DisableRuntimeMarshallingAttribute ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute.#ctor" />
<MemberSignature Language="VB.NET" Value="Public Sub New ()" />
<MemberSignature Language="C++ CLI" Value="public:
 DisableRuntimeMarshallingAttribute();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initializes a <see cref="T:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute" /> instance with default values.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>