C# 针对所有继承类类型的单个WCF服务
我有一个基类结构,如下所示C# 针对所有继承类类型的单个WCF服务,c#,wcf,inheritance,webservice-client,C#,Wcf,Inheritance,Webservice Client,我有一个基类结构,如下所示 class Mammal { ... } class Human : Mammal { ... } class Tiger : Mammal { ... } class Snake : Mammal { ... } [OperationContract(Name = "DoStuffTo")] [WebInvoke] String DoStuffTo(Mammal mammal); 由于服务仅基于哺乳动物类中的属性执行操作,因此我认为没有必要为每种类型创建单独的w
class Mammal { ... }
class Human : Mammal { ... }
class Tiger : Mammal { ... }
class Snake : Mammal { ... }
[OperationContract(Name = "DoStuffTo")]
[WebInvoke]
String DoStuffTo(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();
该服务的签名如下
class Mammal { ... }
class Human : Mammal { ... }
class Tiger : Mammal { ... }
class Snake : Mammal { ... }
[OperationContract(Name = "DoStuffTo")]
[WebInvoke]
String DoStuffTo(Mammal mammal);
请查看
ServiceKnownTypeAttribute