.net序列化命名空间内的XML命名空间

时间:2010-01-26 15:30:44

标签: c# .net xml serialization

我想生成这样的XML:

<a:foo>
  <b:bar><b:value="test" /></b:bar>
</a:foo>

我正在从类描述符生成XML。我有这个:

[Serializable]
[XmlType(Namespace = Constants.NS_A)]
[XmlRoot("Foo", Namespace = Constants.NS_A, IsNullable = false)]
public class Foo 
{
  private Bar_ bar = new Bar_();

  [XmlElementAttribute("bar")]
  public Bar_ Bar { get { return bar; } 
                    set { bar = value; } }

}

[Serializable]
[XmlType(Namespace = Constants.NS_B)]
[XmlRoot("Bar", Namespace = Constants.NS_B, IsNullable = false)]                        
  public class Bar_ 
  {                     
    private string value_;

    [XmlElementAttribute("value")]
    public string Value_
    {
        get
        {
            return value_;
        }
        set
        {
            value_ = value;
        }
    }
  }

通过这些类,我可以生成如下XML:

<a:foo>
  <a:bar><b:value="test" /></a:bar>
</a:foo>

这不是我想要的......

需要很少的帮助。感谢

1 个答案:

答案 0 :(得分:2)

您可以在属性XmlElementAttribute的{​​{1}}中为结果XML指定所需的命名空间:

Bar