NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

5.4 Attribute arguments

Arguments to an attribute may take two forms: positional arguments and data member/property initializers. Positional arguments to the attribute (if any) must precede the data member/property initializers. A positional argument consists of a constant expression; a data member/property initializer consists of an identifier, followed by a colon and an equal sign, followed by a constant expression.

Given an attribute with attribute class T, positional argument list P and data member/property initializer list N, determining whether the arguments are legal consists of the following steps:

AttributeArguments ::=
 AttributePositionalArgumentList |
 AttributePositionalArgumentList , DataMemberPropertyInitializerList |
 DataMemberPropertyInitializerList
AttributePositionalArgumentList ::=
 ConstantExpression |
 AttributePositionalArgumentList , ConstantExpression
DataMemberPropertyInitializerList ::=
 DataMemberPropertyInitializer
 DataMemberPropertyInitializerList , DataMemberPropertyInitializer
DataMemberPropertyInitializer ::= Identifier : = ConstantExpression