0

次のようなシリアル化方法があります。

public string SerializeObject(object obj, Type type)
{
    var setting = new XmlWriterSettings() { OmitXmlDeclaration = true, Indent = true };

    var xml = new StringBuilder();
    using (var writer = XmlWriter.Create(xml, setting))
    {
        var nsSerializer = new XmlSerializerNamespaces();
        nsSerializer.Add(string.Empty, string.Empty);

        var xmlSerializer = new XmlSerializer(type);
        xmlSerializer.Serialize(writer, obj, nsSerializer);
    }
    return xml.ToString();
}

私は次のように呼んでいます:

requestXML = serializer.SerializeObject(InboundIterate, typeof(INBOUND));

構造体で文字列として定義したフィールドの出力は期待どおりですが、すべての 10 進数値が欠落しています。

たとえば、私の出力は次のようになります。

<PRODUCT_EXTENSION>
<DIMENSION_UOM>IN</SD_DIMENSION_UOM>
<SALES_UOM>CS</SD_SALES_UOM>
</PRODUCT_EXTENSION>

期待しているとき

<PRODUCT_EXTENSION>
<DIMENSION_UOM>IN</DIMENSION_UOM>
<DIMENSION>15.83</DIMENSION>
<SALES_UOM>CS</SALES_UOM>
<SALES>24</SALES>
</PRODUCT_EXTENSION>

助けていただければ幸いです、ありがとう。

下のクラス

public partial class PRODUCT_EXTENSION {

    private System.Nullable<decimal> LENGTHField;

    private bool LENGTHFieldSpecified;

    private System.Nullable<decimal> NET_WEIGHTField;

    private bool NET_WEIGHTFieldSpecified;

    private string SALES_UOMField;

    private string WEIGHT_UOMField;

    private List<PRODUCT_EXTENSIONSOURCE_SYSTEM> SOURCE_SYSTEMField;

    public PRODUCT_EXTENSION() {
        this.SOURCE_SYSTEMField = new List<PRODUCT_EXTENSIONSOURCE_SYSTEM>();
    }

    public System.Nullable<decimal> LENGTH {
        get {
            return this.LENGTHField;
        }
        set {
            this.LENGTHField = value;
        }
    }

    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool SD_LENGTHSpecified {
        get {
            return this.LENGTHFieldSpecified;
        }
        set {
            this.LENGTHFieldSpecified = value;
        }
    }

    public System.Nullable<decimal> NET_WEIGHT {
        get {
            return this.NET_WEIGHTField;
        }
        set {
            this.NET_WEIGHTField = value;
        }
    }

    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool NET_WEIGHTSpecified {
        get {
            return this.NET_WEIGHTFieldSpecified;
        }
        set {
            this.NET_WEIGHTFieldSpecified = value;
        }
    }

    public string SALES_UOM {
        get {
            return this.SALES_UOMField;
        }
        set {
            this.SALES_UOMField = value;
        }
    }

    public string SD_WEIGHT_UOM {
        get {
            return this.WEIGHT_UOMField;
        }
        set {
            this.WEIGHT_UOMField = value;
        }
    }

    public List<PRODUCT_EXTENSIONSOURCE_SYSTEM> SOURCE_SYSTEM {
        get {
            return this.SOURCE_SYSTEMField;
        }
        set {
            this.SOURCE_SYSTEMField = value;
        }
    }
}
4

1 に答える 1