~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to external/mono-addins/docs/Mono.Addins/NodeAttributeAttribute.xml

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<Type Name="NodeAttributeAttribute" FullName="Mono.Addins.NodeAttributeAttribute">
 
2
  <TypeSignature Language="C#" Value="public class NodeAttributeAttribute : Attribute" />
 
3
  <AssemblyInfo>
 
4
    <AssemblyName>Mono.Addins</AssemblyName>
 
5
    <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
6
    <AssemblyVersion>1.0.0.0</AssemblyVersion>
 
7
  </AssemblyInfo>
 
8
  <Base>
 
9
    <BaseTypeName>System.Attribute</BaseTypeName>
 
10
  </Base>
 
11
  <Interfaces />
 
12
  <Docs>
 
13
    <summary>Indicates that a field is bound to a node attribute</summary>
 
14
    <remarks>
 
15
      <para>The [NodeAttribute] custom attribute can be used to specify fields that have to be initialized from node attributes. By default, a field is will get its value from an attribute with the same name, although it is possible to specify a different name by setting the NodeAttribute.Name property. NodeAttribute also has a Required property for specifying if an attribute is mandatory or not.
 
16
</para>
 
17
      <example>
 
18
        <code lang="C#">
 
19
public class FileTemplateNode: ExtensionNode
 
20
{
 
21
        // Will match elements like &lt;FileTemplate resource-name="blah" /&gt;
 
22
        // The true parameter specifies that the attribute is required
 
23
        [NodeAttribute ("resource-name", true, Description="Name of the resource where the template is stored.")]
 
24
        string resource;
 
25
        
 
26
        [NodeAttribute]
 
27
        string name;
 
28
        
 
29
        public string Name {
 
30
                get { return name != null ? name : Id; }
 
31
        }
 
32
                
 
33
        public virtual string GetContent ()
 
34
        {
 
35
                using (StreamReader sr = new StreamReader(Addin.GetResource (resource))) {
 
36
                        return sr.ReadToEnd (); 
 
37
                }
 
38
        }
 
39
        
 
40
}  </code>
 
41
      </example>
 
42
      <para>
 
43
If an <see cref="T:Mono.Addins.ExtensionNode" /> subclass overrides the <see cref="M:Mono.Addins.ExtensionNode.Read" /> method to provide a custom node deserialization implementation, [NodeAttribute] attributes applied to fileds will be ignored. In this case, this attribute can also be applied at class level to provide documentation about the supported attributes. For example:
 
44
</para>
 
45
      <example>
 
46
        <code lang="C#">
 
47
[NodeAttribute ("name", typeof(string), false, Description="Name of the template.")]
 
48
[NodeAttribute ("resource-name", typeof(string), true, Description="Name of the resource where the template is stored.")]
 
49
public class FileTemplateNode: ExtensionNode
 
50
{
 
51
        string resource;
 
52
        string name;
 
53
        
 
54
        public string Name {
 
55
                get { return name != null ? name : Id; }
 
56
        }
 
57
 
 
58
        public virtual string GetContent ()
 
59
        {
 
60
                using (StreamReader sr = new StreamReader(Addin.GetResource (resource))) {
 
61
                        return sr.ReadToEnd (); 
 
62
                }
 
63
        }
 
64
 
 
65
        protected override void Read (NodeElement elem)
 
66
        {
 
67
                resource = elem.GetAttribute ("resource-name");
 
68
                name = elem.GetAttribute ("name");
 
69
        }
 
70
}
 
71
  </code>
 
72
      </example>
 
73
    </remarks>
 
74
  </Docs>
 
75
  <Members>
 
76
    <Member MemberName=".ctor">
 
77
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute ();" />
 
78
      <MemberType>Constructor</MemberType>
 
79
      <Parameters />
 
80
      <Docs>
 
81
        <summary>Initializes a new instance.</summary>
 
82
        <remarks>It takes the field name and type as name and type of the attribute.</remarks>
 
83
      </Docs>
 
84
      <AssemblyInfo>
 
85
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
86
      </AssemblyInfo>
 
87
    </Member>
 
88
    <Member MemberName=".ctor">
 
89
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name);" />
 
90
      <MemberType>Constructor</MemberType>
 
91
      <Parameters>
 
92
        <Parameter Name="name" Type="System.String" />
 
93
      </Parameters>
 
94
      <Docs>
 
95
        <param name="name">XML name of the attribute.</param>
 
96
        <summary>Initializes a new instance.</summary>
 
97
        <remarks />
 
98
      </Docs>
 
99
      <AssemblyInfo>
 
100
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
101
      </AssemblyInfo>
 
102
    </Member>
 
103
    <Member MemberName=".ctor">
 
104
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, bool required);" />
 
105
      <MemberType>Constructor</MemberType>
 
106
      <Parameters>
 
107
        <Parameter Name="name" Type="System.String" />
 
108
        <Parameter Name="required" Type="System.Boolean" />
 
109
      </Parameters>
 
110
      <Docs>
 
111
        <param name="name">XML name of the attribute.</param>
 
112
        <param name="required">Indicates whether the attribute is required or not.</param>
 
113
        <summary>Initializes a new instance.</summary>
 
114
        <remarks />
 
115
      </Docs>
 
116
      <AssemblyInfo>
 
117
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
118
      </AssemblyInfo>
 
119
    </Member>
 
120
    <Member MemberName=".ctor">
 
121
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, string description);" />
 
122
      <MemberType>Constructor</MemberType>
 
123
      <AssemblyInfo>
 
124
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
125
      </AssemblyInfo>
 
126
      <Parameters>
 
127
        <Parameter Name="name" Type="System.String" />
 
128
        <Parameter Name="description" Type="System.String" />
 
129
      </Parameters>
 
130
      <Docs>
 
131
        <param name="name">To be added.</param>
 
132
        <param name="description">To be added.</param>
 
133
        <summary>To be added.</summary>
 
134
        <remarks>To be added.</remarks>
 
135
      </Docs>
 
136
    </Member>
 
137
    <Member MemberName=".ctor">
 
138
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type);" />
 
139
      <MemberType>Constructor</MemberType>
 
140
      <Parameters>
 
141
        <Parameter Name="name" Type="System.String" />
 
142
        <Parameter Name="type" Type="System.Type" />
 
143
      </Parameters>
 
144
      <Docs>
 
145
        <param name="name">XML name of the attribute.</param>
 
146
        <param name="type">Type of the extension node attribute.</param>
 
147
        <summary>Initializes a new instance.</summary>
 
148
        <remarks>This constructor can only be used when applying [NodeAttribute] at class level.</remarks>
 
149
      </Docs>
 
150
      <AssemblyInfo>
 
151
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
152
      </AssemblyInfo>
 
153
    </Member>
 
154
    <Member MemberName=".ctor">
 
155
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, bool required, string description);" />
 
156
      <MemberType>Constructor</MemberType>
 
157
      <AssemblyInfo>
 
158
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
159
      </AssemblyInfo>
 
160
      <Parameters>
 
161
        <Parameter Name="name" Type="System.String" />
 
162
        <Parameter Name="required" Type="System.Boolean" />
 
163
        <Parameter Name="description" Type="System.String" />
 
164
      </Parameters>
 
165
      <Docs>
 
166
        <param name="name">To be added.</param>
 
167
        <param name="required">To be added.</param>
 
168
        <param name="description">To be added.</param>
 
169
        <summary>To be added.</summary>
 
170
        <remarks>To be added.</remarks>
 
171
      </Docs>
 
172
    </Member>
 
173
    <Member MemberName=".ctor">
 
174
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type, bool required);" />
 
175
      <MemberType>Constructor</MemberType>
 
176
      <Parameters>
 
177
        <Parameter Name="name" Type="System.String" />
 
178
        <Parameter Name="type" Type="System.Type" />
 
179
        <Parameter Name="required" Type="System.Boolean" />
 
180
      </Parameters>
 
181
      <Docs>
 
182
        <param name="name">XML name of the attribute.</param>
 
183
        <param name="type">Type of the extension node attribute.</param>
 
184
        <param name="required">Indicates whether the attribute is required or not.</param>
 
185
        <summary>Initializes a new instance.</summary>
 
186
        <remarks>This constructor can only be used when applying [NodeAttribute] at class level.</remarks>
 
187
      </Docs>
 
188
      <AssemblyInfo>
 
189
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
190
      </AssemblyInfo>
 
191
    </Member>
 
192
    <Member MemberName=".ctor">
 
193
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type, string description);" />
 
194
      <MemberType>Constructor</MemberType>
 
195
      <AssemblyInfo>
 
196
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
197
      </AssemblyInfo>
 
198
      <Parameters>
 
199
        <Parameter Name="name" Type="System.String" />
 
200
        <Parameter Name="type" Type="System.Type" />
 
201
        <Parameter Name="description" Type="System.String" />
 
202
      </Parameters>
 
203
      <Docs>
 
204
        <param name="name">To be added.</param>
 
205
        <param name="type">To be added.</param>
 
206
        <param name="description">To be added.</param>
 
207
        <summary>To be added.</summary>
 
208
        <remarks>To be added.</remarks>
 
209
      </Docs>
 
210
    </Member>
 
211
    <Member MemberName=".ctor">
 
212
      <MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type, bool required, string description);" />
 
213
      <MemberType>Constructor</MemberType>
 
214
      <AssemblyInfo>
 
215
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
216
      </AssemblyInfo>
 
217
      <Parameters>
 
218
        <Parameter Name="name" Type="System.String" />
 
219
        <Parameter Name="type" Type="System.Type" />
 
220
        <Parameter Name="required" Type="System.Boolean" />
 
221
        <Parameter Name="description" Type="System.String" />
 
222
      </Parameters>
 
223
      <Docs>
 
224
        <param name="name">To be added.</param>
 
225
        <param name="type">To be added.</param>
 
226
        <param name="required">To be added.</param>
 
227
        <param name="description">To be added.</param>
 
228
        <summary>To be added.</summary>
 
229
        <remarks>To be added.</remarks>
 
230
      </Docs>
 
231
    </Member>
 
232
    <Member MemberName="Description">
 
233
      <MemberSignature Language="C#" Value="public string Description { set; get; }" />
 
234
      <MemberType>Property</MemberType>
 
235
      <ReturnValue>
 
236
        <ReturnType>System.String</ReturnType>
 
237
      </ReturnValue>
 
238
      <Docs>
 
239
        <summary>Description of the attribute.</summary>
 
240
        <value>Description of the attribute.</value>
 
241
        <remarks>To be used in the extension point documentation.</remarks>
 
242
      </Docs>
 
243
      <AssemblyInfo>
 
244
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
245
      </AssemblyInfo>
 
246
    </Member>
 
247
    <Member MemberName="Localizable">
 
248
      <MemberSignature Language="C#" Value="public bool Localizable { set; get; }" />
 
249
      <MemberType>Property</MemberType>
 
250
      <AssemblyInfo>
 
251
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
252
      </AssemblyInfo>
 
253
      <ReturnValue>
 
254
        <ReturnType>System.Boolean</ReturnType>
 
255
      </ReturnValue>
 
256
      <Docs>
 
257
        <summary>To be added.</summary>
 
258
        <value>To be added.</value>
 
259
        <remarks>To be added.</remarks>
 
260
      </Docs>
 
261
    </Member>
 
262
    <Member MemberName="Name">
 
263
      <MemberSignature Language="C#" Value="public string Name { set; get; }" />
 
264
      <MemberType>Property</MemberType>
 
265
      <ReturnValue>
 
266
        <ReturnType>System.String</ReturnType>
 
267
      </ReturnValue>
 
268
      <Docs>
 
269
        <summary>XML name of the attribute.</summary>
 
270
        <value>XML name of the attribute.</value>
 
271
        <remarks>
 
272
          <para>
 
273
If the name is not specified, the field name to which the [NodeAttribute] is applied will be used as name.
 
274
</para>
 
275
          <para>
 
276
Providing a name is mandatory when applying [NodeAttribute] at class level.
 
277
</para>
 
278
        </remarks>
 
279
      </Docs>
 
280
      <AssemblyInfo>
 
281
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
282
      </AssemblyInfo>
 
283
    </Member>
 
284
    <Member MemberName="Required">
 
285
      <MemberSignature Language="C#" Value="public bool Required { set; get; }" />
 
286
      <MemberType>Property</MemberType>
 
287
      <ReturnValue>
 
288
        <ReturnType>System.Boolean</ReturnType>
 
289
      </ReturnValue>
 
290
      <Docs>
 
291
        <summary>Indicates whether the attribute is required or not.</summary>
 
292
        <value>'true' if the attribute is required.</value>
 
293
        <remarks />
 
294
      </Docs>
 
295
      <AssemblyInfo>
 
296
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
297
      </AssemblyInfo>
 
298
    </Member>
 
299
    <Member MemberName="Type">
 
300
      <MemberSignature Language="C#" Value="public Type Type { set; get; }" />
 
301
      <MemberType>Property</MemberType>
 
302
      <ReturnValue>
 
303
        <ReturnType>System.Type</ReturnType>
 
304
      </ReturnValue>
 
305
      <Docs>
 
306
        <summary>Type of the extension node attribute.</summary>
 
307
        <value>A type.</value>
 
308
        <remarks>To be used only when applying [NodeAttribute] at class level. Not required when it is applied to a field, since the attribute type will be the type of the field.</remarks>
 
309
      </Docs>
 
310
      <AssemblyInfo>
 
311
        <AssemblyVersion>0.4.0.0</AssemblyVersion>
 
312
      </AssemblyInfo>
 
313
    </Member>
 
314
  </Members>
 
315
  <Attributes>
 
316
    <Attribute>
 
317
      <AttributeName>System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Field | System.AttributeTargets.All, AllowMultiple=true)</AttributeName>
 
318
    </Attribute>
 
319
  </Attributes>
 
320
</Type>