using System.Runtime.Serialization;
public static void Main()
var request="<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n <s:Body>\r\n <ProcessOneWayEvent xmlns=\"http://schemas.microsoft.com/sharepoint/remoteapp/\">\r\n <properties xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n <CultureLCID>1033</CultureLCID>\r\n </properties>\r\n </ProcessOneWayEvent>\r\n </s:Body>\r\n</s:Envelope>";
Console.WriteLine(request);
var response=XmlDeserializer<Envelope>(request);
Console.WriteLine(JsonConvert.SerializeObject(response));
Assert.AreEqual(1033, response.Body.ProcessOneWayEvent.Properties.CultureLCID);
public static T XmlDeserializer<T>( string text)
using (Stream stream = new MemoryStream())
byte[] data = System.Text.Encoding.UTF8.GetBytes(text);
stream.Write(data, 0, data.Length);
var deserializer = new DataContractSerializer(typeof(T));
return (T)deserializer.ReadObject(stream);
[DataContract(Name = "Body", Namespace = "http://schemas.microsoft.com/sharepoint/remoteapp/")]
[DataMember(Name = "ProcessOneWayEvent")]
public ProcessOneWayEvent ProcessOneWayEvent;
[DataContract(Name = "properties", Namespace = "http://schemas.microsoft.com/sharepoint/remoteapp/")]
public class SPRemoteEventProperties
[DataMember(Name = "CultureLCID") ]
public int CultureLCID { get; set; }
[DataContract(Name = "Envelope", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
[DataMember(Name = "Body")]
[DataContract(Name = "ProcessOneWayEvent",Namespace = "http://schemas.microsoft.com/sharepoint/remoteapp/")]
public class ProcessOneWayEvent
[DataMember(Name = "properties")]
public SPRemoteEventProperties Properties { get; set; }