1
<Type Name="NodeAttributeAttribute" FullName="Mono.Addins.NodeAttributeAttribute">
2
<TypeSignature Language="C#" Value="public class NodeAttributeAttribute : Attribute" />
4
<AssemblyName>Mono.Addins</AssemblyName>
5
<AssemblyVersion>0.4.0.0</AssemblyVersion>
6
<AssemblyVersion>1.0.0.0</AssemblyVersion>
9
<BaseTypeName>System.Attribute</BaseTypeName>
13
<summary>Indicates that a field is bound to a node attribute</summary>
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.
19
public class FileTemplateNode: ExtensionNode
21
// Will match elements like <FileTemplate resource-name="blah" />
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.")]
30
get { return name != null ? name : Id; }
33
public virtual string GetContent ()
35
using (StreamReader sr = new StreamReader(Addin.GetResource (resource))) {
36
return sr.ReadToEnd ();
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:
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
55
get { return name != null ? name : Id; }
58
public virtual string GetContent ()
60
using (StreamReader sr = new StreamReader(Addin.GetResource (resource))) {
61
return sr.ReadToEnd ();
65
protected override void Read (NodeElement elem)
67
resource = elem.GetAttribute ("resource-name");
68
name = elem.GetAttribute ("name");
76
<Member MemberName=".ctor">
77
<MemberSignature Language="C#" Value="public NodeAttributeAttribute ();" />
78
<MemberType>Constructor</MemberType>
81
<summary>Initializes a new instance.</summary>
82
<remarks>It takes the field name and type as name and type of the attribute.</remarks>
85
<AssemblyVersion>0.4.0.0</AssemblyVersion>
88
<Member MemberName=".ctor">
89
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name);" />
90
<MemberType>Constructor</MemberType>
92
<Parameter Name="name" Type="System.String" />
95
<param name="name">XML name of the attribute.</param>
96
<summary>Initializes a new instance.</summary>
100
<AssemblyVersion>0.4.0.0</AssemblyVersion>
103
<Member MemberName=".ctor">
104
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, bool required);" />
105
<MemberType>Constructor</MemberType>
107
<Parameter Name="name" Type="System.String" />
108
<Parameter Name="required" Type="System.Boolean" />
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>
117
<AssemblyVersion>0.4.0.0</AssemblyVersion>
120
<Member MemberName=".ctor">
121
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, string description);" />
122
<MemberType>Constructor</MemberType>
124
<AssemblyVersion>0.4.0.0</AssemblyVersion>
127
<Parameter Name="name" Type="System.String" />
128
<Parameter Name="description" Type="System.String" />
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>
137
<Member MemberName=".ctor">
138
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type);" />
139
<MemberType>Constructor</MemberType>
141
<Parameter Name="name" Type="System.String" />
142
<Parameter Name="type" Type="System.Type" />
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>
151
<AssemblyVersion>0.4.0.0</AssemblyVersion>
154
<Member MemberName=".ctor">
155
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, bool required, string description);" />
156
<MemberType>Constructor</MemberType>
158
<AssemblyVersion>0.4.0.0</AssemblyVersion>
161
<Parameter Name="name" Type="System.String" />
162
<Parameter Name="required" Type="System.Boolean" />
163
<Parameter Name="description" Type="System.String" />
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>
173
<Member MemberName=".ctor">
174
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type, bool required);" />
175
<MemberType>Constructor</MemberType>
177
<Parameter Name="name" Type="System.String" />
178
<Parameter Name="type" Type="System.Type" />
179
<Parameter Name="required" Type="System.Boolean" />
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>
189
<AssemblyVersion>0.4.0.0</AssemblyVersion>
192
<Member MemberName=".ctor">
193
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type, string description);" />
194
<MemberType>Constructor</MemberType>
196
<AssemblyVersion>0.4.0.0</AssemblyVersion>
199
<Parameter Name="name" Type="System.String" />
200
<Parameter Name="type" Type="System.Type" />
201
<Parameter Name="description" Type="System.String" />
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>
211
<Member MemberName=".ctor">
212
<MemberSignature Language="C#" Value="public NodeAttributeAttribute (string name, Type type, bool required, string description);" />
213
<MemberType>Constructor</MemberType>
215
<AssemblyVersion>0.4.0.0</AssemblyVersion>
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" />
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>
232
<Member MemberName="Description">
233
<MemberSignature Language="C#" Value="public string Description { set; get; }" />
234
<MemberType>Property</MemberType>
236
<ReturnType>System.String</ReturnType>
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>
244
<AssemblyVersion>0.4.0.0</AssemblyVersion>
247
<Member MemberName="Localizable">
248
<MemberSignature Language="C#" Value="public bool Localizable { set; get; }" />
249
<MemberType>Property</MemberType>
251
<AssemblyVersion>0.4.0.0</AssemblyVersion>
254
<ReturnType>System.Boolean</ReturnType>
257
<summary>To be added.</summary>
258
<value>To be added.</value>
259
<remarks>To be added.</remarks>
262
<Member MemberName="Name">
263
<MemberSignature Language="C#" Value="public string Name { set; get; }" />
264
<MemberType>Property</MemberType>
266
<ReturnType>System.String</ReturnType>
269
<summary>XML name of the attribute.</summary>
270
<value>XML name of the attribute.</value>
273
If the name is not specified, the field name to which the [NodeAttribute] is applied will be used as name.
276
Providing a name is mandatory when applying [NodeAttribute] at class level.
281
<AssemblyVersion>0.4.0.0</AssemblyVersion>
284
<Member MemberName="Required">
285
<MemberSignature Language="C#" Value="public bool Required { set; get; }" />
286
<MemberType>Property</MemberType>
288
<ReturnType>System.Boolean</ReturnType>
291
<summary>Indicates whether the attribute is required or not.</summary>
292
<value>'true' if the attribute is required.</value>
296
<AssemblyVersion>0.4.0.0</AssemblyVersion>
299
<Member MemberName="Type">
300
<MemberSignature Language="C#" Value="public Type Type { set; get; }" />
301
<MemberType>Property</MemberType>
303
<ReturnType>System.Type</ReturnType>
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>
311
<AssemblyVersion>0.4.0.0</AssemblyVersion>
317
<AttributeName>System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Field | System.AttributeTargets.All, AllowMultiple=true)</AttributeName>