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.
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.