[Serializable]
public class MyClass
{
[XmlAttribute]
public bool myBool { get; set; }
}
類但當屬性不存在在XML這個串行化布爾的值設置爲false。 當該屬性不在xml中我希望該屬性爲null。
所以我想這
[Serializable]
public class MyClass
{
[XmlAttribute]
public bool? myBool { get; set; }
}
但隨後串行錯誤
Type t = Type.GetType("Assembly.NameSpace.MyClass");
XmlSerializer mySerializer = new XmlSerializer(t); //error "There was an error reflecting type"
請給我一個例子,我可以做到這一點。我知道這裏有一些相關的問題,但沒有任何內容顯示如何用可空布爾值來克服反射錯誤。謝謝。
@Aliostad:我很欣賞你的方法的優點,但是如果XML結構不打開修改,它將不會工作。 – Jon 2012-03-30 12:18:42
這看起來不錯,但似乎沒有工作。 「{}指定」是一個神奇的名字嗎?我需要吸氣劑中的一些邏輯嗎? – Jules 2012-03-30 12:22:51
@Jules:是的,這是一個神奇的名字。在鏈接頁面上搜索「模式以propertyNameSpecified的形式創建」。如果它不起作用,請顯示您當前的代碼。 – Jon 2012-03-30 12:24:13