Учитывая, что TypeCode
- это просто перечисление фиксированного набора значений, вы можете легко жестко закодировать их словарь, например,
private static readonly Dictionary<TypeCode,int> TypeCodeLength =
new Dictionary<TypeCode,int> {
{ TypeCode.Int32, 4 },
{ TypeCode.Int64, 8 },
{ TypeCode.Char, 2 },
// etc
}
(Эквивалентным решением было бы использование оператора switch / case - они действительно эквивалентны, если вы просто включаете значения.)
Некоторые, такие как string
и object
будут переменными, а другие будут зависеть от того, как вы кодируете такие вещи, как DateTime
.
Если это не использует стандартное преобразование, ничто в фреймворке не сможет дать вам длины. Я знаю, что жесткое кодирование обычно осуждается, но в этом случае оно только в одном месте и будет самым простым вариантом.