System.Xml.Serialization.XmlCodeExporter
генерирует код (в коде CodeDom) из схемы XSD. Но он делает это с некоторыми причудами. Например, необязательный элемент:
<xs:element name="Something" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
Я ожидаю, что это создаст соответствующий член кода типа Nullable<decimal>
, но на самом деле создает член типа decimal
, а затем отдельное поле SomethingSpecified
, которое должно быть переключено отдельно, чтобы указать нулевое значение. Вероятно, это связано с тем, что библиотека находится до появления типов с возможностью NULL, но это приводит к действительно неудобному коду.
Можно ли настроить это генерирование кода, или есть альтернативный инструмент, который генерирует лучший код в этом случае?
Изменить: я знаю, что могу изменить схему и добавить nillable='true'
, но я не хочу менять схему, чтобы обойти ограничения генерации кода.