public class Pet
{
// The default value for the Animal field is "Dog".
[DefaultValue(0)]
public int testinteger { get; set; }
[DefaultValue (00000000 - 0000 - 0000 - 0000 - 000000000000)]
public Guid testbool { get; set; }
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("OverrideDefaultValue.xml");
}
public void SerializeObject(string filename)
{
XmlSerializer mySerializer = new XmlSerializer(typeof(Pet));
TextWriter writer = new StreamWriter(filename);
Pet myPet = new Pet();
myPet.testinteger = 10;
mySerializer.Serialize(writer, myPet);
writer.Close();
}
}
这里我使用Id属性进行序列化。我使用了属性默认值。但序列化不限于Id属性。
答案 0 :(得分:0)
如果属性不起作用,您可以将属性标记为内部属性(仅公共属性为序列化)。
尝试检查是否设置了正确的属性,在属性上方设置XML属性,以便不对该属性进行序列化。 [XmlIgnore] 要么 [非序列化]
答案 1 :(得分:0)
这因序列化程序而异。由于您使用的是Datatable.Importsheet "C:\Temp\test.xlsx",1,1
,因此添加XmlSerializer
是基于属性的方式。
但您也可以添加:
[XmlIgnore]
(这适用于条件序列化,其中有时想要包含值;模式为public bool ShouldSerializetestbool() => false;
)
一个更有趣的例子可能是:
public bool ShouldSerialize{PropertyName}()