所有继承类类型的单个WCF服务

时间:2013-07-25 11:26:18

标签: c# wcf inheritance webservice-client

我有一个基类结构如下。

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);
相关问题