Подтвердить что ты не робот

Классы, созданные с помощью имен пользовательских классов XSD.exe

Возможно ли иметь какой-либо контроль над именами классов, которые генерируются с помощью инструмента .Net XSD.exe?

4b9b3361

Ответ 1

Насколько я знаю, я не думаю, что это возможно, имена классов почти точно соответствуют тем, что в схеме.

Лично я бы изменил имена классов после того, как XSD сгенерировал код, но, честно говоря, я обычно просто придерживаюсь того, что генерирует XSD. Тогда легче кому-то еще прочитать код, чтобы понять, какие классы сопоставляются с какими частями XML.

В качестве альтернативы, если у вас есть контроль над схемой, вы можете обновить ее?

Ответ 2

В принципе, нет. Если вы пишете классы вручную, вы можете:

[XmlType("bar")]
class Foo {}

однако вы не можете сделать это с помощью классов, созданных xsd. К сожалению, одна из вещей, которые вы не можете сделать с помощью partial class, переименовывает ее. Конечно, вы можете использовать xsd для его создания, изменить файл .cs и не генерировать его снова, но это не идеально подходит для обслуживания.

Ответ 3

Любая схема с несколько глубоким вложением затем заканчивается совершенно бесполезными именами.

Я не знаю, как решить эту проблему, но мой совет, по крайней мере, уменьшить негативное воздействие: Определите список псевдонимов для названий с ужасом. Таким образом, вы можете написать код, который не является полностью нечитаемым, не теряя возможности регенерации.

using AgentAddress = Example.Namespace.DataContract.RootElementNestedElementAgentAddress;
...

Жаль, что этот список сам должен быть скопирован во все файлы кода, которые ему нужны, но я думаю, что это, по крайней мере, является улучшением.