Visual studio 2008 .Net设置文件、复杂类型和序列化
我有以下几种Visual studio 2008 .Net设置文件、复杂类型和序列化,visual-studio-2008,xml-serialization,settings.settings,Visual Studio 2008,Xml Serialization,Settings.settings,我有以下几种 [Serializable, XmlType(Namespace="http://mycompany/foo"] public sealed class Limit { [XmlElement(ElementName="Value1")] public double Value1 {get;set;} [XmlElement(ElementName="ComplexValue1")] public ComplexValue ComplexValue
[Serializable, XmlType(Namespace="http://mycompany/foo"]
public sealed class Limit
{
[XmlElement(ElementName="Value1")]
public double Value1 {get;set;}
[XmlElement(ElementName="ComplexValue1")]
public ComplexValue ComplexValue1 {get;set;}
}
[Serializable, XmlType(Namespace="http://mycompany/foo"]
public sealed class ComplexValue
{
[XmlElement(ElementName="Item1")]
public double Item1 {get;set;}
[XmlElement(ElementName="Item2")]
public double Item2 {get;set;}
}
我想将其序列化为.settings文件
当我将下面的blob复制到设置文件中时,不知何故我丢失了ComplexValue1元素:
<?xml version="1.0" encoding="utf-16"?>
<Limit>
<Value1>20</Value1>
<ComplexValue1>
<Item1>2.0</Item1>
<Item2>5.0</Item2>
</ComplexValue1>
</Limit>
20
2
5
i、 e.Visual Studio将其转换为:
<?xml version="1.0" encoding="utf-16"?>
<Limit>
<Value1>20</Value1>
</Limit>
20
有一堆名称空间,我认为对这个问题不重要
我错过了什么
Serializable
属性XmlType
属性来解决这个问题XmlRoot
可以在设置设计器中的每个设置基础上关闭为默认值生成代码。对于那些不需要的设置,只需在属性窗口中将GeneratedFaultValueInCode设置为false即可。我已经知道答案,但如果您愿意,可以获取分数:-)这些点并不能解决问题,事实上,问题在于VS在settings.designer.cs文件中注入“默认”值的习惯。不过还是要谢谢你的推荐。。。