+
+
+ [Test]
+ public void XmlSerializerdWithXmlAttribute()
+ {
+ TypedMessageConverter c = TypedMessageConverter.Create (
+ typeof (Test3), "http://tempuri.org/MyTest",
+ new XmlSerializerFormatAttribute ());
+
+
+ string xmlMessage = @"<s:Envelope xmlns:s='http://www.w3.org/2003/05/soap-envelope'
+ xmlns:a='http://www.w3.org/2005/08/addressing'>
+ <s:Header><a:Action s:mustUnderstand='1'>http://tempuri.org/MyTest</a:Action></s:Header>
+ <s:Body xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
+ <test xmlns='urn:foo'>
+ <Id>OneID</Id>
+ <Element>
+ <Prop1 xmlns='urn:bar'>foo</Prop1>
+ <Prop2 xmlns='urn:bar'>2</Prop2>
+ </Element>
+ <Element>
+ <Prop1 xmlns='urn:bar'>bar</Prop1>
+ <Prop2 xmlns='urn:bar'>3</Prop2>
+ </Element>
+ </test>
+ </s:Body>
+ </s:Envelope>";
+
+ byte[] buffer = Encoding.UTF8.GetBytes(xmlMessage);
+ using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(buffer, XmlDictionaryReaderQuotas.Max))
+ {
+ Message messagedisk = Message.CreateMessage(reader, int.MaxValue, MessageVersion.Soap12);
+ Test3 obj = c.FromMessage(messagedisk) as Test3;
+ Assert.IsNotNull(obj);
+ Assert.AreEqual("OneID", obj.Id);
+ Assert.IsNotNull(obj.ArrayOfElement);
+ Assert.AreEqual(2, obj.ArrayOfElement.Length);
+ Assert.AreEqual("foo", obj.ArrayOfElement[0].Prop1);
+ Assert.AreEqual(3, obj.ArrayOfElement[1].Prop2);
+ }
+ }
+
+