NOTE: Information Object Set code generation is only done when the -tables option is selected.
This additional code is generated to support the processing required to verify table constraints which is intended for use only in compiler-generated code. Therefore, it is not necessary for the average user to understand the mappings in order to use the product. The information presented here is informative only to provide a better understanding of how the compiler handles table constraints.
Information Object code will be generated in a C# source file with a special class to hold the values. The name of the source file and class is of the following format:
_<ModuleName>Values.cs
In this definition, <ModuleName> would be replaced with the name of the ASN.1 module in which the Information Object Sets are defined.
Each Information Object Set specification causes a C# constant to be generated containing an array of Information Object values. Each object in the array is an instance of the equivalent C# class representing the corresponding ASN.1 information object
As of this writing, a static array is used to hold the objects, but this could be changed to something like a linked list or hash.
ASN.1 definition:
<name> <ClassName> ::= { <Information Object1> | <Information Object2> }
Generated C# constants:
public static readonly <ClassName> <name> = new <ClassName> {<Information Object1>, <Information Object1> };
For example, consider the following Information Object Set declaration for above ATTRIBUTE definition:
SupportedAttributes ATTRIBUTE ::= { name | commonName }
This would result in the following C# constant being generated:
public static readonly ATTRIBUTE[] SupportedAttributes = new ATTRIBUTE[] { _TestValues.name, _TestValues.commonName };