我有一个基类结构如下。
class Mammal { ... }
class Human : Mammal { ... }
class Tiger : Mammal { ... }
class Snake : Mammal { ... }
由于该服务仅基于Mammal类中的属性执行操作,因此我认为无需为每种类型创建单独的 Web 方法(否则也可以使用条件语句)。
我得到的错误是我需要声明一个翻译器或类似的东西,并且考虑到我记得关于它的讨论(现在找不到它),我想知道这是否可行。我记得有人告诉我,使用 WCF 时无法重新创建继承结构。
有没有办法解决这个问题,或者我应该简单地保留一些公开的服务,这些服务执行相同的调用,但每个服务都接收不同类型的输入?
编辑
为了澄清我在寻找什么,我想运行以下代码。
Human human = new Human { ... };
Tiger tiger = new Tiger { ... };
Snake snake = new Snake { ... };
ServiceClient client = new ServiceClient();
client.DoStuffTo(human);
client.DoStuffTo(tiger);
client.DoStuffTo(snake);
client.Close();
该服务的签名如下。
[OperationContract(Name = "DoStuffTo")]
[WebInvoke]
String DoStuffTo(Mammal mammal);