c#XML序列化程序非命名空间使用列表

c#XML序列化程序非命名空间使用列表,c#,xml-serialization,xsd,xml-namespaces,C#,Xml Serialization,Xsd,Xml Namespaces,我想使用xmlserializer更改xml名称空间。我浏览了网页,没有结果。我从序列化程序得到的结果是: <?xml version="1.0" encoding="utf-8"?> <OLPData mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Resource> </Resourc

我想使用xmlserializer更改xml名称空间。我浏览了网页,没有结果。我从序列化程序得到的结果是:

<?xml version="1.0" encoding="utf-8"?>
<OLPData mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Resource>
    </Resource>
</OLPData>
在xml类结构中,但它显然向ressource而不是OLDData添加了noNamespaceSchemaLocation

<?xml version="1.0" encoding="utf-8"?>
<OLPData mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Resource xsi:noNamespaceSchemaLocation = "C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd">
</Resource>
</OLPData>

我想要的是这个结果:

<?xml version="1.0" encoding="utf-8"?>
<OLPData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd">
  <Resource>
</Resource>
</OLPDate>


有什么建议吗?

这是我得到的第一个想法,它似乎工作正常:(根据评论修改了


我不能使用var xml=new OlpData{Resources=new[]{new Resource()}@托马斯-当然,你需要什么就做什么。根据您的请求修改答案以使用
WriteGeneral
。WriteGeneral是一种返回名为general的变量的方法,该变量是一种资源类型。不知道你是否明白。它不是一个数组。@Thomas-是的,它不是数组。那又怎么样?我明白了,我可以看到下面的方法。你试过密码了吗?它应该很好用。如果应该只有一个资源,您可以删除数组代码,我假设可以有更多的数组代码,因为您原始问题中的
List
。我有以下错误:无法将类型“AnonymousType#1”隐式转换为“Resource”。在WriteGeneralXML.WriteGeneral()处给出
<?xml version="1.0" encoding="utf-8"?>
<OLPData mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Resource xsi:noNamespaceSchemaLocation = "C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd">
</Resource>
</OLPData>
<?xml version="1.0" encoding="utf-8"?>
<OLPData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd">
  <Resource>
</Resource>
</OLPDate>
void Main()
{
    var s = new XmlSerializer(typeof(OlpData));
    using (var t = new StreamWriter("code.xml"))
    {
        var xml = new OlpData { Resources = new[] { WriteGeneral() } };
        s.Serialize(t, xml);
    }
}

[XmlRoot("OLPData")]
public partial class OlpData
{
    [XmlAttribute(AttributeName = "noNamespaceSchemaLocation", Namespace = XmlSchema.InstanceNamespace)]
    public string attr = @"C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd";

    [XmlElement("Resource")]
    public Resource[] Resources;
}

public partial class Resource
{
}