How do I set a namespace prefix to an XAttribute in .NET?

Specify the namespace when you create the 'encodingStyle' XAttribute (by using ns + "encodingStyle"):

XAttribute encoding = new XAttribute(ns + "encodingStyle", "http://www.w3.org/2001/12/soap-encoding");

The two-parameter XAttribute constructor takes an XName as the first argument. This can either be constructed implicitly from a string (as in the code in your question), or directly by "adding" a string to an XNamespace to create an XName (as above).


You need to combine the XName of your XAttribute with an XNamespace. I know right... Anyhow try this.

XNamespace soap = "http://www.w3.org/2001/12/soap-envelope";
XAttribute encoding = new XAttribute(soap + "encodingStyle",
    "http://www.w3.org/2001/12/soap-encoding");

Tags:

C#

.Net

Xml

Soap