Классы, созданные с помощью имен пользовательских классов XSD.exe - PullRequest
12 голосов
/ 14 марта 2009

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

Ответы [ 3 ]

6 голосов
/ 15 марта 2009

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

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

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

6 голосов
/ 15 марта 2009

В основном нет. Если бы вы писали классы вручную, вы могли бы иметь:

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

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

2 голосов
/ 21 ноября 2011

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

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

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

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

...