Я пытаюсь использовать ASMX/WCF для передачи объектов между сайтами (общедоступными/частными). Я могу передать сериализованный объект из моей частной службы ASMX в общедоступную службу WCF, но не могу десериализовать объект. Код ниже, за которым следует ошибка.
Служба WCF, которая вызывает частную службу ASMX.
[WebGet(UriTemplate = "{part}")]
public Distributor GetDistributorInventory(string part)
{
const string url = "http://www.site.com/service/lookup.asmx/StockCheck?part=" + part;
//This is a wrapper for a HttpWebRequest that returns a string
string results = WebHelper.HttpRequest("GET", "text/xml", null, url, new CookieContainer());
byte[] byteArray = Encoding.ASCII.GetBytes(results);
MemoryStream stream = new MemoryStream(byteArray);
DataContractSerializer deserialize = new DataContractSerializer(typeof(Distributor));
return (Distributor)deserialize.ReadObject(stream);
}
Контракт, используемый как в государственных, так и в частных службах
[DataContract(Namespace = "http://www.site.com/Services/", Name = "Inventory")]
public class Inventory
{
[DataMember(Order = 1)]
public string MPN{ get; set; }
[DataMember(Order = 2)]
public string DataSheetURL { get; set; }
[DataMember(Order = 3)]
public List<Distributor> Stock { get; set; }
}
[DataContract(Namespace = "http://www.site.com/Services/", Name = "Distributor")]
public class Distributor
{
[DataMember(Order = 1)]
public string Name { get; set; }
[DataMember(Order = 2)]
public string Part { get; set; }
[DataMember(Order = 3)]
public int Quantity { get; set; }
[DataMember(Order = 4)]
public string URL { get; set; }
}
Сообщение об ошибке:
Ошибка в строке 1, позиция 166. Ожидается элемент «Дистрибьютор» из пространства имен «http://www.site.com/Services/».. Обнаружен «Элемент» с именем «Инвентарь», пространство имен «http://www.site. com/Услуги/'.
Я мог бы пойти по этому пути совершенно неправильно, поэтому предложения по лучшему подходу (с образцом) будут очень признательны. Моя конечная цель — передавать объекты между службами WCF и WCF или ASMX с использованием пользовательских объектов и контрактов данных.