наследование: веб-сервис asmx всегда возвращает подкласс

#c# #serialization #inheritance #asmx

#c# #сериализация #наследование #asmx

Вопрос:

У меня проблема с веб-сервисами asmx. У меня есть эти объекты

 public class animal
{
    public string id = null;
    public string name = null;
}

public class dog: animals
{
    public string surname = null;
    public string color = null;
}
  

и веб-сервис

 public animal GetAnimal()
{
  animal result = new dog();
  return resu<
}
  

проблема в том, что мой веб-сервис всегда возвращает dog. Есть ли простой способ, чтобы он мог вернуть animal?
(Я вижу 2 решения, которые мне не нравятся:

 animal result = new animal();
  

или

 animal resultDog = new dog();
animal result = new animal();
result.id = resultDog.id
result.color = resultDog.color 
  

)

Комментарии:

1. Как выглядит ваш код, использующий веб-сервис?

Ответ №1:

проблема в том, что мой веб-сервис всегда возвращает dog

Он возвращает тип dog, потому что … вот что он возвращает

 public animal GetAnimal()
{
  animal result = **new dog();**
  return resu<
}
  

Ваш потребляющий код должен иметь возможность ссылаться на него как на тип animal без каких-либо проблем:

 animal a = GetAnimal();
a.id="id";
a.name="name";
  

Не могли бы вы уточнить, с какой ошибкой или проблемой вы столкнулись?