簡體   English   中英

XmlSerializer不會序列化復雜類型類

[英]Complex type class not being serialized by XmlSerializer

所以我有課:

public class classA : BaseClass
{
    public classA(){}
}


public abstract class BaseClass
{
    public ComplexTypeClass Total { get; set; }
    public List<Item> Items {get; set; } 
    //some other properties
}


public class ComplexTypeClass : ValueObject<ComplexTypeClass>
{
    public ComplexTypeClass()
    {
    }
    public ComplexTypeClass(decimal p1, decimal p2, decimal p)
    {
        P1 = p1;
        P2 = p2;
        P3 = p3;
    }
    public decimal P1 { get; }
    public decimal P2 { get; }
    public decimal P3 { get; }

    //some methods and validations
}


public abstract class ValueObject<T> : IEquatable<T>, IValidatableObject where T : ValueObject<T>
{
    //all implemented interfaces methods
}

然后,我嘗試序列化classA ,除ComplexTypeClass屬性外,所有屬性和列表均已正確序列化。 對於此屬性,我在xml <Total />得到這樣的行。

所有類都具有[Serializable][ComplexType][XmlType]屬性。 我也嘗試過不同的組合。 我嘗試在ComplexTypeClass屬性上使用[XmlElement][XmlRoot] 但是那什么也沒做。

我確實有另一個復雜的類型類,該類沒有接口,並且該類已正確序列化。

這些接口是否需要做任何事情? 還是我缺少一些簡單而小的東西?

編輯:擺脫接口並沒有幫助。

如謙卑的@Sinatr指出的那樣,如果有人偶然發現了這種問題, ComplexTypeClass屬性

public decimal P1 { get; }
public decimal P2 { get; }
public decimal P3 { get; }

沒有set ,因此XmlSerializer無法重新填充此對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM