AsnCharacterStringEncodings
using System.Text;
namespace System.Formats.Asn1
{
internal static class AsnCharacterStringEncodings
{
private static readonly UTF8Encoding s_utf8Encoding = new UTF8Encoding(false, true);
private static readonly BMPEncoding s_bmpEncoding = new BMPEncoding();
private static readonly IA5Encoding s_ia5Encoding = new IA5Encoding();
private static readonly VisibleStringEncoding s_visibleStringEncoding = new VisibleStringEncoding();
private static readonly NumericStringEncoding s_numericStringEncoding = new NumericStringEncoding();
private static readonly PrintableStringEncoding s_printableStringEncoding = new PrintableStringEncoding();
private static readonly T61Encoding s_t61Encoding = new T61Encoding();
internal static Encoding GetEncoding(UniversalTagNumber encodingType)
{
switch (encodingType) {
case UniversalTagNumber.UTF8String:
return s_utf8Encoding;
case UniversalTagNumber.NumericString:
return s_numericStringEncoding;
case UniversalTagNumber.PrintableString:
return s_printableStringEncoding;
case UniversalTagNumber.IA5String:
return s_ia5Encoding;
case UniversalTagNumber.VisibleString:
return s_visibleStringEncoding;
case UniversalTagNumber.BMPString:
return s_bmpEncoding;
case UniversalTagNumber.TeletexString:
return s_t61Encoding;
default:
throw new ArgumentOutOfRangeException("encodingType", encodingType, null);
}
}
}
}