У меня есть веб-сервис, который всегда возвращает ReturnObject, класс, который я написал так:
public class ReturnObject
{
public Status Status { get; set; }
public Object Data { get; set; }
}
Когда я возвращаю один объект, например, int или строку и т. Д. В Data, это нормально, но когда я хочу вернуть список типизированных объектов, клиент, который запускает веб-сервис в качестве WebReference, получает это исключение:
System.Web.Services.Protocols.SoapException: серверу не удалось обработать запрос.
---> System.InvalidOperationException: при создании документа XML произошла ошибка
---> System.InvalidOperationException:
TypeN
System.Collections.Generic.List`1 [[Transticket.Domain.Models.ApsisMailingList,
Transticket.Domain, версия = 1.0.0.0, культура = нейтральная,
PublicKeyToken = null]] может быть добавлено в текст. VID
System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive (String
name, String ns, Object o, Boolean xsiType) vid
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object (String
n, String ns, Object o, Boolean isNullable, Boolean needType) vid
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write3_ReturnObject (String
n, String ns, ReturnObject o, логическое значение isNullable, логическое значение needType)
VID
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write6_GetListsResponse (Object []
р) вид
Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer5.Serialize (Объект
objectToSerialize, XmlSerializationWriter writer) vid
System.Xml.Serialization.XmlSerializer.Serialize (XmlWriter xmlWriter,
Объект o, пространства имен XmlSerializerNamespaces, String encodingStyle,
Идентификатор строки) --- Шлюха для стажировки в интернете ---
vid System.Xml.Serialization.XmlSerializer.Serialize (XmlWriter
xmlWriter, Object o, пространства имен XmlSerializerNamespaces, String
encodingStyle, String id) vid
System.Web.Services.Protocols.SoapServerProtocol.WriteReturns (Object []
returnValues, Stream outputStream) vid
System.Web.Services.Protocols.WebServiceHandler.WriteReturns (Object []
returnValues) vid
System.Web.Services.Protocols.WebServiceHandler.Invoke () --- Шлюха
По прошествии старейшины ---
Это исключение не в веб-сервисе, а в клиентском вызове веб-службы после возврата данных.
Если я сделаю там другой объект ReturnObject и укажу список типизированных объектов в качестве данных, он будет работать хорошо.
У кого-то есть идея, как это обобщить? Я всегда думал, что List является типом Object, но выглядит как ошибка .NET, или я что-то пропустил?