-
Notifications
You must be signed in to change notification settings - Fork 42
/
AdoptsAttribute.xml
154 lines (145 loc) · 5.79 KB
/
AdoptsAttribute.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<Type Name="AdoptsAttribute" FullName="ObjCRuntime.AdoptsAttribute">
<TypeSignature Language="C#" Value="public sealed class AdoptsAttribute : Attribute" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit AdoptsAttribute extends System.Attribute" />
<TypeSignature Language="DocId" Value="T:ObjCRuntime.AdoptsAttribute" />
<TypeSignature Language="F#" Value="type AdoptsAttribute = class
 inherit Attribute" />
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Attribute</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>An attribute used to specify that a class adopts a specific Objective-C protocol.</summary>
<remarks>
<para>
You can use this attribute to decorate NSObject-derived
classes to report back to the Objective-C runtime that the
class adopts the specified Objective-C protocol.
</para>
<para>
Unlike C# interfaces, Objective-C protocols have optional
components which means that they are not directly mapped to C#
constructs. In both the Xamarin.iOS and Xamarin.Mac Framework bindings,
protocols are usually inlined directly into the classes that adopt the
protocols. This allows developers to invoke any methods adopted
by the system classes.
</para>
<para>
User subclasses use this attribute when they want to
explicitly inform the Objective-C runtime that they adopt the
protocol. This attribute is looked up by the
NSObject.ConformsToProtocol method.
</para>
<para>
An alternative method of specifying that a class adopts a specific
Objective-C protocol is to make the class implement the managed
interface for the protocol (usually the name of the protocol prefixed
by I).
<code lang="csharp lang-csharp"><![CDATA[
//
// The following examples are both equivalent
//
[Adopts ("UITableViewDelegate")]
class MyTableViewA : UITableView
{
}
class MyTableViewB : UITableView, IUITableViewDelegate
{
}
]]></code>
This has the advantage that the managed compiler will enforce
the implementation of required protocol members, and the IDE
will show intellisense to implement any protocol member.
</para>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public AdoptsAttribute (string protocolType);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string protocolType) cil managed" />
<MemberSignature Language="DocId" Value="M:ObjCRuntime.AdoptsAttribute.#ctor(System.String)" />
<MemberSignature Language="F#" Value="new ObjCRuntime.AdoptsAttribute : string -> ObjCRuntime.AdoptsAttribute" Usage="new ObjCRuntime.AdoptsAttribute protocolType" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="protocolType" Type="System.String" />
</Parameters>
<Docs>
<param name="protocolType">The name of the protocol you are adopting.</param>
<summary>
</summary>
<remarks>
</remarks>
</Docs>
</Member>
<Member MemberName="ProtocolHandle">
<MemberSignature Language="C#" Value="public IntPtr ProtocolHandle { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance native int ProtocolHandle" />
<MemberSignature Language="DocId" Value="P:ObjCRuntime.AdoptsAttribute.ProtocolHandle" />
<MemberSignature Language="F#" Value="member this.ProtocolHandle : nativeint" Usage="ObjCRuntime.AdoptsAttribute.ProtocolHandle" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.IntPtr</ReturnType>
</ReturnValue>
<Docs>
<summary>Returns the underlying handle to the Protocol.</summary>
<value>
</value>
<remarks>
</remarks>
</Docs>
</Member>
<Member MemberName="ProtocolType">
<MemberSignature Language="C#" Value="public string ProtocolType { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string ProtocolType" />
<MemberSignature Language="DocId" Value="P:ObjCRuntime.AdoptsAttribute.ProtocolType" />
<MemberSignature Language="F#" Value="member this.ProtocolType : string" Usage="ObjCRuntime.AdoptsAttribute.ProtocolType" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>The name of the protocol type adopted.</summary>
<value>
</value>
<remarks>
</remarks>
</Docs>
</Member>
</Members>
</Type>