Value Type Editor, Code Generation Info Tab

The Code Generation Info tab contains the information and editors for the code generation related data of the value type definition and its containing elements like fields. Per element selected in the Element combo box, there are at most five sub-tabs available for settings, and code generation related data. Each sub-tab is described below. Not all tabs are available for each element.

Code Gen tab

The Code Generation Info tab

Setting values sub-tab

This sub-tab contains all settings defined by the chosen target framework for the element selected in the Element combo box. Each setting has its value set according to the default in the project specific settings available in the Project Settings Editor. Changing the value will change it for the element chosen in the Element combo box, changing the default in the Project Properties editor afterwards isn't affecting the element specific value. It's recommended to set the defaults in the Project Properties Editor first, and then tweak the individual element's setting if it's required to specify a different value from the default.

Custom properties sub-tab

This sub-tab allows you to specify name-value text pairs for the selected element, which can be used during code generation in template logic and which are emitted in XML DOC comments in the generated code.

Attributes sub-tab

The attributes sub-tab is divided into two parts: the attributes inherited from the project, which are specified in the Project Settings Editor, and the attributes defined for the specific element selected in the Element combo-box. Attributes are defined using Attribute Definition Macros and are generated as attribute definitions using the target language specific constructs on the code-element representing the element chosen in the Element combo box. Attribute definitions don't need [] or <> around the definitions, these are added automatically by the code generator.

By default, an attribute which is defined for a given element type, e.g. 'value type definition', is automatically inherited by all instances of that type, e.g. all value type definitions, if no rule is specified. If a rule is specified a the project level, it's inherited by those elements for which the rule is true. You can decide not to inherit a particular attribute definition for a particular element by selecting the element in the Element combo box and unchecking the checkbox in the 'Inherit' column next to the attribute definition you don't want to inherit for that particular element

To define a new attribute, add the new definition in the top-row of the grid at the bottom half of the sub-tab and hit Enter to add it. To remove an attribute definition added manually for an element, select it using the row header and press DEL.

Additional namespaces sub-tab

The additional namespaces sub-tab is, similar to the Attributes sub-tab, divided into two parts: the additional namespaces inherited from the project, which are specified in the Project Settings Editor, and the additional namespaces defined for the specific element selected in the Element combo-box. Additional namespaces are generated in the using / Imports section of the class representing the element chosen in the Element combo box. The assembly an additional namespace might be in isn't automatically added to the generated vs.net project.

By default, an additional namespace which is defined for a given element type, e.g. 'value type definition', is automatically inherited by all instances of that type, e.g. all value type definition, if no rule is specified. If a rule is specified a the project level, it's inherited by those elements for which the rule is true. You can decide not to inherit a particular additional namespace for a particular element by selecting the element in the Element combo box and unchecking the checkbox in the 'Inherit' column next to the additional namespace name you don't want to inherit for that particular element.

To define a new additional namespace, add the new definition in the top-row of the grid at the bottom half of the sub-tab and hit Enter to add it. To remove an additional namespace specification added manually for an element, select it using the row header and press DEL.

Additional interfaces sub-tab

The additional interfaces sub-tab is, similar to the Attributes sub-tab, divided into two parts: the additional interfaces inherited from the project, which are specified in the Project Settings Editor, and the additional interfaces defined for the specific element selected in the Element combo-box.

Additional interfaces are generated as interfaces implemented by the class generated to represent the element chosen in the Element combo-box, however the actual implementation of the interface is not generated, so the class definition is said to implement the interface, the actual properties/methods of the interface are not stubbed out or generated into code. Use the Additional namespaces sub-tab to make sure the interface specified is in scope and won't cause a compile error.

By default, an additional interface which is defined for a given element type, e.g. 'value type definition', is automatically inherited by all instances of that type, e.g. all value type definition, if no rule is specified. If a rule is specified a the project level, it's inherited by those elements for which the rule is true. You can decide not to inherit a particular additional interface for a particular element by selecting the element in the Element combo box and unchecking the checkbox in the 'Inherit' column next to the additional interface name you don't want to inherit for that particular element.

To define a new additional interface, add the new definition in the top-row of the grid at the bottom half of the sub-tab and hit Enter to add it. To remove an additional interface specification added manually for an element, select it using the row header and press DEL.