簡體   English   中英

實體框架的部分類中的字符串屬性未序列化

[英]String property in partial class of the entity framework is not serialized

我正在嘗試在實體框架的部分類中序列化字符串屬性。

public partial class tableTest : EntityObject
{
    public String testA
    {
        get
        {
            return "ok";
        }
    }

    [XmlElement("TestB")]
    public List<String> TestB
    {
        get { var list = new List<String>(); list.Add("testB"); return list; }
    }
}

屬性TestA不起作用,但屬性TestB有效。 我試圖將XmlElement,XmlAttribute,DataMemberAttribute ...添加到TestA,沒有任何效果。

有人猜嗎?

(.net Framework 4.5)

[XmlElement]建議您使用XmlSerializer 現在,如果我們考慮:

public String testA
{
    get
    {
        return "ok";
    }
}

請注意, XmlSerializer將忽略此操作,因為它知道它不能反序列化 (沒有設置器)。 序列化器希望以后也能夠反序列化數據。 它不會序列化,因為沒有設置器就無法提供反序列化。

添加二傳手。 理想情況下,例如:

[XmlElement("testA")]
public string TestA {get;set;}

(並將其值分別指定為"ok"

另請注意,您的列表目前也不會正確反序列化; 我會建議:

private readonly List<string> testB = new List<string>();
[XmlElement("TestB")]
public List<string> TestB { get { return testB; } }

(再次-分別添加測試數據)

反序列化程序需要使用setter來設置序列化的屬性。 對於XML序列化程序要序列化的每個屬性,您必須具有公共的getter和setter。

暫無
暫無

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

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