В контексте Web Service у меня есть следующий класс, который наследуется от класса Mammal. Класс Mammal определяется в прокси. Я не могу изменить определение этого класса. Поскольку мне нужно добавить некоторые методы в класс Mammal на стороне клиента, я унаследовал Mammal и создал Giraffe.WebService, WebMethod и Inheritance
namespace TestApplication
{
public class Giraffe : Mammal
{
public Giraffe()
{
}
}
}
Когда я называю WebMethod, которые ожидают объект типа Млекопитающее, я получаю следующее исключение, говоря мне, что жираф не ожидается.
Error: System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type Giraffe was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterPaymentRequestAuthorization.Write6_Tender(String n, String ns, Tender o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterPaymentRequestAuthorization.Write12_PaymentRequestAuthorization(String n, String ns, PaymentRequestAuthorization o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterPaymentRequestAuthorization.Write13_PaymentRequestAuthorization(Object o)
--- End of inner exception stack trace ---
Есть ли обходной путь, который? Я не могу добавить XmlInclude ...
Посмотрите на эту тему http://stackoverflow.com/questions/20084/xml-serialization-and-inherited-types –