The ASN.1 EXTERNAL type is a useful type used to include non-ASN.1 or other data within an ASN.1 encoded message. The type is described using the following ASN.1 SEQUENCE:
EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE { direct-reference OBJECT IDENTIFIER OPTIONAL, indirect-reference INTEGER OPTIONAL, data-value-descriptor ObjectDescriptor OPTIONAL, encoding CHOICE { single-ASN1-type [0] ANY, octet-aligned [1] IMPLICIT OCTET STRING, arbitrary [2] IMPLICIT BIT STRING } }
The ASN.1 compiler is used to create a meta-definition for this structure. The definition will be generated in the file Asn1External.cs (or Asn1XerExternal.cs for XER), if needed by compiling ASN.1 file. An object created from the resulting C# class is populated just like any other compiler-generated structure for working with ASN.1 data.