Как мне сделать класс C # со словарным членом, используя XSD? - PullRequest
1 голос
/ 17 октября 2008

Я использую xsd.exe для создания классов C # для наших настроек. У меня есть настройка для каждого сервера и базы данных, поэтому я хочу, чтобы класс вел себя как словарь <строка, строка [] []>. Поэтому я хочу иметь возможность сказать

string serverName = "myServer";
int databaseId = 1;
FieldSettings fieldSettings = getFieldSettings();

string[] fields = fieldSettings[serverName][databaseId];

как мне представить это в XSD?

Ответы [ 2 ]

2 голосов
/ 17 октября 2008

xsd определяет структуру данных, а не подход доступа. Я не думаю, что вы можете выразить «это поиск» в xsd: все это либо значения, либо набор значений / сущностей.

Если вам нужна конкретная обработка, вы можете рассмотреть возможность пользовательской сериализации или, в качестве альтернативы, рассматривать ваши DTO и ваши рабочие классы как отдельные вещи и просто переводить их между собой.

[править] Как заметки про леппи - вы можете написать свой собственный индексатор (обычно в частичном классе, если генерируете cs из xsd), который перебирает список для поиска элемента: это даст вам использование вызывающей стороны, но не совсем полный словарный опыт (уникальность, O (1) поиск и т. д.)

1 голос
/ 17 октября 2008

Это не то, для чего используется xsd. Вы всегда можете просто добавить свой собственный индексатор в частичный класс и отметить его [XmlIgnore]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...