Каков разумный предел длины для полей Type.FullName? - PullRequest
1 голос
/ 27 июня 2011

Я собираюсь сохранить Type.FullName, то есть 'System.String' в поле базы данных. Имена типов, которые будут сохранены, являются произвольными и не находятся под моим контролем. Какова максимальная длина имени типа?

РЕДАКТИРОВАТЬ: Я не буду использовать эту информацию для создания экземпляров типа, она просто используется для фильтрации / сортировки / группировки, поэтому можно сохранить только FullName вместо AssemblyQualifiedName.

1 Ответ

4 голосов
/ 27 июня 2011

Нет максимальной длины, о которой я знаю ... поэтому вам, вероятно, следует выбрать максимальную разумную длину.Что-то вроде 256 должно быть достаточно для всего разумного, ИМО.128 вполне может подойти, но если у вас есть глубокая иерархия пространства имен и длинное имя внешнего класса и длинное имя вложенного класса, я думаю, возможно , что реальное имя типа превысит 128 ...

Вы определенно в порядке только с именем типа без информации о сборке?Если вам нужно получить тип, используя Type.GetType(string), вам понадобится информация о сборке, если только она не находится в текущей сборке или в mscorlib.Очевидно, что это добавляет значительную длину к задействованной строке ...

РЕДАКТИРОВАТЬ: Как отмечено в вашем комментарии, если вы используете универсальный тип сконструированный , имена могут быть очень длинными.Так как typeof(List<>).FullName довольно короткий, typeof(List<string>).FullName - это не так.

Если вы собираетесь хранить сконструированные универсальные типы, вероятно, стоит дать довольно большой предел.Тем не менее, я надеюсь, что в большинстве случаев достаточно 4096:)

...