Я имею дело с реализацией WSCF (контракты на веб-службы), в которой я получил файлы XSD и общий вызов в виде файла WSDL.
Общий вызов SOAP выглядит так:
`<env:Body>
<ns0:ProcessMessage xmlns:ns0 = "...">
<ns0:payload>
<ns0:content id = "0">
<ns1:ObjectToBeSerialize>`
Я получил файлы XSD с несколькими объектами, которые можно было получить вместо <ns1:ObjectToBeSerialize>
. Я сгенерировал все классы C# из XSD и создал абстрактный класс из класса «содержимого», в котором я добавляю свойство к конкретным классам, но этот подход не работает. Я также пытался использовать частичный класс из класса «контент», но мне это тоже не удалось.
Есть идеи, как реализовать этот подход?
Частичный класс решает проблему, как вы сказали, мне просто нужно убедиться, что пространство имен было правильным, а также установить флаг IsNullable = true.
рад это слышать, я тоже написал ответ ради него.
Благодаря @Popo я понял, что не использовал правильное пространство имен, а также флаг IsNullable = true.
[System.Xml.Serialization.XmlElementAttribute(ElementName = "ElementName", Namespace = "Namespace", IsNullable = true)]
Использование partial a Partial class должно сработать для вас. Убедитесь, что пространства имен указаны правильно в ваших атрибутах для ваших свойств и классов.
Кажется, что подход частичного класса должен работать, есть ли у вас правильные атрибуты пространства имен и т. д.? Какие типы ошибок вы получаете?