0

我有一个基类结构如下。

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);
4

1 回答 1

1

看看ServiceKnownTypeAttribute

在这篇文章中

于 2013-07-25T12:04:24.103 回答