Dans un contexte de service Web, j'ai la classe suivante qui hérite de la classe Mammal. La classe Mammal est définie dans un proxy. Je ne peux pas changer la définition de cette classe. Parce que j'ai besoin d'ajouter quelques méthodes à la classe Mammal du côté client, j'ai hérité de Mammal et créé Giraffe.WebService, WebMethod et Héritage
namespace TestApplication
{
public class Giraffe : Mammal
{
public Giraffe()
{
}
}
}
Quand j'appelle un WebMethod qui attendent un objet de type mammifère, je reçois l'exception suivante me disant que Giraffe ne devrait.
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 ---
Y a-t-il une solution de contournement? Je ne peux pas vraiment ajouter le XmlInclude ...
Jetez un oeil à ce fil http://stackoverflow.com/questions/20084/xml-serialization-and-inherited-types –