c# - 有没有办法在 WCF 中实现核心代码模板?

标签 c# wcf

我正在从事基于 WCF 的 Web 服务项目。我们有大约 50 种不同的服务,它们提供获取、创建、更新和删除操作。我的问题是当我在一个操作中发现错误时,比方说在 get 操作中,它在所有服务中都很常见,我需要打开并替换所有 50 个服务中的所有代码。我的问题是,有没有一种方法可以实现一个单一的核心代码模板,这样我所做的任何更改都将被所有服务使用?基本上我正在寻找类似于 ASP.NET 中母版页概念的东西。让我举一个假想的例子来更好地说明我的问题:

public string Get(Parameter param)
{
    ArrayList myList = new ArrayList();
    //some service specific business rules implemented here
    return myList.ToString();
}

假设所有服务都在使用以上代码,我想将我的 ArrayList 对象更改为 List 对象,如下所示:

public string Get(Parameter param)
{
    List<string> myList = new List<string>();
    //some service specific business rules implemented here
    return myList.ToString();
}

所以,现在,如果我想通过在每个服务中打开各自的代码文件然后替换代码来实现这一点,我需要更改所有服务。我正在考虑使用我们现在已经在使用的接口(interface),但我想不出以这种方式实现接口(interface)的方法。如果有,你有什么例子吗?还是有其他方法可以解决这个问题?

最佳答案

您真的应该将每个 Web 服务的内部逻辑提取到可重用且无依赖性的通用组件中,并将 Web 服务操作保留为仅调用该逻辑的 stub ,例如:

//Convert:
public string Get(Parameter param)
{
    List<string> myList = new List<string>();
    //some service specific business rules implemented here
    return myList.ToString();
}

//Into:
public string Get(Parameter param)
{
    var serviceFor = new ModelService<MyModel>();
    return serviceFor.ExecuteGet(param);
}

关于c# - 有没有办法在 WCF 中实现核心代码模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2246393/

相关文章:

c# - WCF 异步调用返回 10054 错误 : "An existing connection was forcibly closed by the remote host"

c# - XNA Waterphysicals 自上而下的基于六角形的网格

.net - Windows 中没有 makecert 的自签名证书?

c# - WCF List<string> 序列化/反序列化错误

c# - 从 wcf 服务的响应结果生成 xml

c# - 如何有效地处理带分隔符的文本文件?

c# - 是否有可能通过 RIA 服务获得类似 0..1 数据的关联?

c# - 为什么不尽可能使用 "in"作为方法参数呢?

具有不想工作的 WCF 服务的 WCF 新手(我认为是元数据)

c# - WCF 客户端证书身份验证,服务 'SslRequireCert' 的 SSL 设置与 IIS 'Ssl, SslNegotiateCert' 的设置不匹配