C# Linq到XML禁用默认名称空间

C# Linq到XML禁用默认名称空间,c#,xml,linq,xml-namespaces,C#,Xml,Linq,Xml Namespaces,我试图使用LINQ to XML为WebDAV服务器编写查询,但我遇到了一个问题,LINQ设置了WebDAV似乎不支持的默认命名空间(xmlns=“bla”) XNamespace ns = "d"; var content = new XElement(ns + "propfind" ,new XAttribute(XNamespace.Xmlns + "d", "DAV:") ,new XElement(ns + "allprops")); 预期产出为: <d:propfind xm

我试图使用LINQ to XML为WebDAV服务器编写查询,但我遇到了一个问题,LINQ设置了WebDAV似乎不支持的默认命名空间(
xmlns=“bla”

XNamespace ns = "d";
var content = new XElement(ns + "propfind"
,new XAttribute(XNamespace.Xmlns + "d", "DAV:")
,new XElement(ns + "allprops"));
预期产出为:

<d:propfind xmlns:d="DAV:"><d:allprop /></d:propfind>

问题是您的元素不在
DAV:
命名空间中-它在
d
命名空间中。您需要区分名称空间URI和名称空间别名。你想要:

XNamespace ns = "DAV:";
var content = new XElement(ns + "propfind",
    new XAttribute(XNamespace.Xmlns + "d", ns),
    new XElement(ns + "allprops"));

问题是您的元素不在
DAV:
命名空间中-它在
d
命名空间中。您需要区分名称空间URI和名称空间别名。你想要:

XNamespace ns = "DAV:";
var content = new XElement(ns + "propfind",
    new XAttribute(XNamespace.Xmlns + "d", ns),
    new XElement(ns + "allprops"));

问题是您的元素不在
DAV:
命名空间中-它在
d
命名空间中。您需要区分名称空间URI和名称空间别名。你想要:

XNamespace ns = "DAV:";
var content = new XElement(ns + "propfind",
    new XAttribute(XNamespace.Xmlns + "d", ns),
    new XElement(ns + "allprops"));

问题是您的元素不在
DAV:
命名空间中-它在
d
命名空间中。您需要区分名称空间URI和名称空间别名。你想要:

XNamespace ns = "DAV:";
var content = new XElement(ns + "propfind",
    new XAttribute(XNamespace.Xmlns + "d", ns),
    new XElement(ns + "allprops"));

啊,好的,谢谢你。因此,如果我理解正确,我仍然在所有定义中使用名称空间“DAV”,序列化将理解它应该使用我提供的别名“d”@NtscCobalt:Yes-尽管它也是元素和子体的默认名称空间,因此除非您需要别名,只需完全删除该属性…Ok就有意义了。是的,在这种情况下,我需要别名。如果将DAV设置为根元素上的默认名称空间,IIS会给我一个400。啊,好的,谢谢。因此,如果我理解正确,我仍然在所有定义中使用名称空间“DAV”,序列化将理解它应该使用我提供的别名“d”@NtscCobalt:Yes-尽管它也是元素和子体的默认名称空间,因此除非您需要别名,只需完全删除该属性…Ok就有意义了。是的,在这种情况下,我需要别名。如果将DAV设置为根元素上的默认名称空间,IIS会给我一个400。啊,好的,谢谢。因此,如果我理解正确,我仍然在所有定义中使用名称空间“DAV”,序列化将理解它应该使用我提供的别名“d”@NtscCobalt:Yes-尽管它也是元素和子体的默认名称空间,因此除非您需要别名,只需完全删除该属性…Ok就有意义了。是的,在这种情况下,我需要别名。如果将DAV设置为根元素上的默认名称空间,IIS会给我一个400。啊,好的,谢谢。因此,如果我理解正确,我仍然在所有定义中使用名称空间“DAV”,序列化将理解它应该使用我提供的别名“d”@NtscCobalt:Yes-尽管它也是元素和子体的默认名称空间,因此除非您需要别名,只需完全删除该属性…Ok就有意义了。是的,在这种情况下,我需要别名。如果将DAV设置为根元素上的默认名称空间,IIS会给我一个400。