public static void Save(IValueSink sink, ExtendedParameter value)
{
sink.EnterChoice((byte)value.Tag);
switch(value.Tag)
{
case Tags.Null:
Value<NullWrapper>.Save(sink, (NullWrapper)value);
break;
case Tags.Real:
Value<RealWrapper>.Save(sink, (RealWrapper)value);
break;
case Tags.Integer:
Value<IntegerWrapper>.Save(sink, (IntegerWrapper)value);
break;
case Tags.Boolean:
Value<BooleanWrapper>.Save(sink, (BooleanWrapper)value);
break;
case Tags.Double:
Value<DoubleWrapper>.Save(sink, (DoubleWrapper)value);
break;
case Tags.Octet:
Value<OctetWrapper>.Save(sink, (OctetWrapper)value);
break;
case Tags.Bitstring:
Value<BitstringWrapper>.Save(sink, (BitstringWrapper)value);
break;
case Tags.Enum:
Value<EnumWrapper>.Save(sink, (EnumWrapper)value);
break;
case Tags.Reference:
Value<ReferenceWrapper>.Save(sink, (ReferenceWrapper)value);
break;
default:
throw new Exception();
}
sink.LeaveChoice();
}