gpt4 book ai didi

c# - 使用 WCF 时创建工厂方法的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:53 25 4
gpt4 key购买 nike

我已经构建了一个复杂的查询机制,我想为其提供一个工厂,以帮助人们使用常见的查询模式。我的方法都通过 WCF 作为 SOAP Web 服务显示。确保所有可能希望使用我的服务的客户都易于使用我的工厂的最佳方法是什么(因为我不希望我的所有客户都使用 .net)?

更新:我想编写一些工厂方法来协助针对我编写的“查询系统”的通用模式。我目前有多个从我的服务公开的 OperationContracts,也公开了多个 DataContracts。关于构建某种工厂以返回我的自定义查询对象以支持我假设他们想要的常见模式的最佳方法,我有一个心理障碍。

这方面的一个具体示例是,一种方法基于具有多组多个匹配概念的搜索请求对象返回对我的数据库的命中,我的代码将所有这些转换为 LINQ 表达式树,这是此搜索中的一个常见组请求对象会将结果限制为仅来自美国的来源,这实际上是一组大约 20 场比赛并且可以转移,所以我不想显示硬编码的代码示例,我更愿意只返回基于组对象关于商品来源的数据,然后他们可以在搜索请求对象中使用这些数据。这听起来很适合像“GroupFactory.CreateGroupOfSomethingOrOther”这样的工厂方法,但最适合我执行此操作的地方是什么?还是我只是让这件事在我的脑海中变得比它应该的复杂得多?

最佳答案

除非您以每个消费者的母语为他们提供库,否则您无法真正提供工厂。考虑过滤器添加一些需要较少粒度配置的过滤器对象,而不是返回分组对象的工厂。

例如,代替:

GetMatches(new GetMatchRequest() { 
Filter = new FilterByState() {
"AZ", "CA", "OH", ... }});

考虑:

GetMatches(new GetMatchRequest() { Filter = new FilterByCountry("USA") });

所有常用过滤器都派生自 FilterBase 或实现 IFilter。在服务器端,调用类似 FilterBase.ConstructQueryObject() 的方法来返回更细化的对象。

关于c# - 使用 WCF 时创建工厂方法的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178822/

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