3

XmlSerializer を使用しています。オブジェクトを正常にシリアル化しますが、クライアントは必要な空の要素をこの形式にする必要があります<star:Confirm/>。代わりに、シリアライザーは空の要素を<star:Confirm></star:Confirm>シリアライズして、クライアントが必要とする方法でシリアライズするように変更する方法があります。

4

2 に答える 2

7

さまざまなことを試した後、私は偶然に解決策を見つけました。XmlElementAttribute.IsNullable前の回答が示唆したように、をtrueに設定しました。

[System.Xml.Serialization.XmlElementAttribute(ElementName = "Confirm", IsNullable=true)]
    public ConfirmType Confirm
    {
        get
        {
            return this.confirmField;
        }
        set
        {
            this.confirmField = value;
            this.RaisePropertyChanged("Confirm");
        }
    }

次に、コードで確認タイプを設定するときに、Confirm を null に設定する代わりに、デフォルトのコンストラクターを使用しました。

retval.ConfirmBODDataArea.Confirm = new ConfirmType();

これは次のように連載されました<star:Confirm/>

于 2010-10-14T20:35:54.990 に答える
3

XmlElementAttribute.IsNullableプロパティを に設定してみてくださいtrue。ただし、xsi:nil="true"結果として属性が出力されることに注意してください。

于 2010-10-14T17:16:34.187 に答える