я подозреваю, я был очень глупо здесь, но у меня есть следующие настройкиВозвращение унаследованный класс как тип базового класса с веб-службами
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
Я тогда есть веб-сервис, который имеет метод
Function getSomeClass(id) as myBaseClass
'a factory here dependent on the id will generate a myInherited Class
return CType(aInstanceOfInheritedClass, mybaseClass)
End function
Запуск это приводит к следующей ошибке
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."
Так что мой вопрос, есть ли способ «Расширение» унаследованного класса базовому классу, чтобы это работало?
EDIT: RE: предложение относительно XmlInclude (typeof inheritedClass), в настоящее время этот метод потенциально может возвращать несколько типов наследуемого класса (то есть myInheritedClassA и myInheritedClassB) - это случай просто добавить каждый из унаследованных типов в этом тег?
Я внес изменения в пример, чтобы сделать вещи более четкие
@Ramesh Синтаксис атрибут, используемый в том, что для C# (OP нуждается в VB.NET), но достаточно близко. Теперь, хороший улов, я предположил, что OP использует SOAP-кодирование, но в случае использования «простой» кодировки XmlInclude является билетом. Я исправлю свой ответ соответственно. – mjv
@mjv вы правы !. C# просто пришел естественно, когда отвечал, так как его было несколько лет, я остановил vb ....обновит это сейчас ... – RameshVel