gpt4 book ai didi

c# - 是否可以从客户端使用通用 DataContract?

转载 作者:行者123 更新时间:2023-11-30 16:29:03 24 4
gpt4 key购买 nike

我知道当你创建一个服务时你可以创建一个通用的 DataContract:

[DataContract(Name = "Get{0}Request")
public sealed class GetItemRequest<T>
where T : class, new() { ... }

[DataContract(Name = "Get{0}Response")
public sealed class GetItemResponse<T>
where T : class, new() { ... }

[ServiceContract]
public void MyService : IMyService
{
[OperationContract]
GetItemResponse<Foo> GetItem(GetItemRequest<Foo> request);
}

这会为我的 WSDL 生成一个 GetFooRequestGetFooResponse 定义。现在,我很好奇是否有可能朝另一个方向前进?

是否可以创建一个使用通用数据合约的客户端并将它们作为具体对象传递给服务器?我在添加服务引用后尝试了此操作,但效果并不理想。所以我更想知道是否有任何方法(即使这意味着不添加服务引用)来做到这一点?

最佳答案

最终,WCF 将着眼于契约类。如果它是从 WSDL/MEX 生成的,它不会有这个(因为这不是它在元数据中的表达方式)——但如果你的客户端有上面的代码,那么确保它应该工作正常。

如果您从客户端向您的 DTO dll 添加一个 引用(即一个 dll/项目引用),并确保 WCF 已启用共享程序集,它应该可以工作。如果它仍然失败,那就作弊:使用服务引用只是为了获取配置数据。然后删除服务引用但保留配置(否则那些配置文件很麻烦)。然后它应该从库中找到类型。

关于c# - 是否可以从客户端使用通用 DataContract?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6685456/

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