gpt4 book ai didi

c# - 为什么我的 wcf 客户端中的操作契约(Contract)不能将接口(interface)作为参数?

转载 作者:太空狗 更新时间:2023-10-29 17:31:46 25 4
gpt4 key购买 nike

我有一个简单的 wcf 服务契约,如果我对接口(interface)使用具体实现,它工作正常,但如果我想在参数中使用接口(interface)而不是具体类,它会给我一个错误,我将在下面显示.

代码如下:

[ServiceContract]
public interface IClientUserRegistration
{
[OperationContract]
void RegisterClientUser(ClientUser clientUser);

[OperationContract]
List<ClientUser> GetUsers();
}

如果我用 IClientUser 替换 ClientUser,WCF 测试客户端会说 RegisterClientUser操作不受支持,因为它使用类型 System.Object。如果我用List替换GetUsers的返回值,它说不支持这个操作,因为它使用了System.Object[]类型。为什么会出现这些错误?

我尝试使用 IClientUser 的原因是我可以实现实现 IClientUser 接口(interface)的不同用户类型并将它们传递给 RegisterClient,但是如果我只能传递 ClientUser,那么我必须创建一堆 RegisterClient覆盖不同类型的用户。

最佳答案

SOAP 没有接口(interface)的概念。这往往会使反序列化变得困难。

关于c# - 为什么我的 wcf 客户端中的操作契约(Contract)不能将接口(interface)作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com