Если вы вызвали WebService.WebMethod
напрямую как внутрипроцессную DLL, она вернет значение типа ParentClass
, которое вам придется вручную уменьшить до ChildClass
. Вот как наследование и полиморфизм должны работать. Почему прокси-класс веб-службы должен вести себя иначе?
РЕДАКТИРОВАТЬ: на основе комментариев ...
В службе .NET WCF вы могли бы решить проблему, сообщив сериализатору о дочернем классе, например,
[DataContract]
[KnownType(typeof(ChildClass))]
public class ParentClass {
public String str1;
}
[DataContract]
public class ChildClass : ParentClass {
public String str2;
}
Дочерний класс затем включается в сгенерированные клиентские прокси-классы, и вы можете преобразовать его в него. Я полагаю, что подобный механизм существует в JAX-WS.