Рассмотрим веб-метод, который предоставляет абстрактный класс:
[WebMethod]
public void Save(AbstractEntity obj)
{
// ..
}
Есть несколько классов, унаследованных от AbstractEntity
как
public class Patient : AbstractEntity
{
// ...
}
Теперь я хочу разрешить потребителю веб-службы создавать новый объект Patient и сохранять его:
service.Save(new Patient { Name = "Doe", Number = "1234567" });
Поскольку «Сохранить» принимает AbstractEntity, на стороне клиента не будет прокси-сервера Patient. Конечно, я мог бы создать фиктивный метод, который бы выставлял пациента, но я надеюсь, что есть лучший способ.
Как правильно представить класс Patient и другие классы, на которые нет прямой ссылки в интерфейсе веб-сервиса?