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!

Field Definitions

Fields definitions are composed of a name and a location signature. The location signature defines the type of the field and the accessing constraints, see Location Signatures. A value type or object type can define only one field of a given name. However, a derived object type may have fields that are of the same name as its base object type. See the Field Inheritance and Hiding, Overriding, and Layout sections.

The name of the field is scoped to the type (see Assemblies and Scoping). Fields can be given accessibility attributes, see the Visibility, Accessibility, and Security section. Fields can only store values that are assignment compatible with the type of the field (see the Assignment Compatible Locations section).

Fields can be marked as static, indicating that the field is not part of values of the type but rather a location associated with the type as a whole. Locations for the static fields are created when the type is loaded and initialized when the type is initialized.

Fields not marked as static define the representation of a value of a type by defining the substructure of the value (see the Fields, Array Elements, and Values section). Locations for such fields are created within every value of the type whenever a new value is constructed. They are initialized during construction of the new value. A non-static field of a given name is always located at the same place within every value of the type.

A field that is marked serializable is to be serialized as part of the persistent state of a value of the type. See the Serialization Specification for details of serialization and related security issues.