Проблема, которая описана в исключении, заключается в следующем объявлении типа и пространства имен для sObject в сообщении мыла
<sObject xsi:type=\"sf:Contact\" xmlns:sf=\"urn:sobject.enterprise.soap.sforce.com\">
, поскольку в этом пространстве имен не определен класс Contact (или любой другой).
Если вы удалите объявление типа и пространства имен из sObject в сообщении мыла (и удалите префикс sf: из его членов), оно должно работать ОК.
Или удалить xsi:type=\"sf:Contact\
и измените DataContract на
[DataContract(Name = "sObject", Namespace = "urn:sobject.enterprise.soap.sforce.com")]
Или оставьте мыльное сообщение, как есть, и измените
[DataContract(Name = "sObject", Namespace = "http://soap.sforce.com/2005/09/outbound")]
public class SObject
на
[DataContract(Name = "Contact", Namespace = "urn:sobject.enterprise.soap.sforce.com")]
public class Contact
, также изменяющийся (в Уведомлении)
[DataMember(Name = "sObject", Order = 2)]
public SObject SObject { get; set; }
до
[DataMember(Name = "sObject", Order = 2)]
public Contact SObject { get; set; }