Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 .Net设置文件、复杂类型和序列化_Visual Studio 2008_Xml Serialization_Settings.settings - Fatal编程技术网

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
有一堆名称空间,我认为对这个问题不重要

我错过了什么

  • XML序列化不需要
    Serializable
    属性

  • 我想您应该删除
    XmlType
    属性来解决这个问题

  • 您指定了名称空间,但XML文件中没有名称空间?这也应该合适

  • 如果愿意,请对根节点使用
    XmlRoot


  • 可以在设置设计器中的每个设置基础上关闭为默认值生成代码。对于那些不需要的设置,只需在属性窗口中将GeneratedFaultValueInCode设置为false即可。

    我已经知道答案,但如果您愿意,可以获取分数:-)这些点并不能解决问题,事实上,问题在于VS在settings.designer.cs文件中注入“默认”值的习惯。不过还是要谢谢你的推荐。。。