Je pense que je suis être très stupide ici, mais je la configurationDe retour d'une classe héritée en tant que type de classe de base avec les services Web
Class MustInherit myBaseClass
'some stuff
End Class
Class myInheritedClassA
inherits myBaseClass
'some more stuff
End Class
Class myInheritedClassB
inherits myBaseClass
'some more stuff
End Class
suivant, je alors un service Web qui a une méthode
Function getSomeClass(id) as myBaseClass
'a factory here dependent on the id will generate a myInherited Class
return CType(aInstanceOfInheritedClass, mybaseClass)
End function
l'exécution de ce résultats dans l'erreur suivante
Unhandled Exception: System.InvalidOperationException:
There was an error generating the XML document. --->
System.InvalidOperationException:
The type <type> was not expected.
Use the XmlInclude or SoapInclude attribute to specify types
that are not known statically."
ma question est, est-il possible de 'Élargir' la classe héritée à la classe de base pour que cela fonctionne?
EDIT: RE: la suggestion concernant XmlInclude (typeof inheritedClass), actuellement cette méthode pourrait renvoyer un certain nombre de types de classe héritée (c.-à-myInheritedClassA et myInheritedClassB) est-il cas de simplement avoir à ajouter chacun des inheritedTypes dans ce marque?
J'ai modifié l'exemple dans l'espoir que les choses plus claires
@Ramesh La syntaxe d'attribut utilisé est celui pour C# (OP a besoin VB.NET), mais assez proche. Maintenant, bonne prise, j'ai supposé que l'OP utilisait l'encodage SOAP, mais dans le cas où l'on utilise un encodage "plain", XmlInclude est le ticket. Je vais corriger ma réponse en conséquence. – mjv
@mjv vous avez raison !. C# est venu tout naturellement en répondant, depuis ses quelques années j'ai arrêté vb ....sera mis à jour maintenant ... – RameshVel