6

我目前通过 WCF 提供具有多种方法的服务。我想重构,以便将单个服务拆分为多个类,每个类都提供一组不同的功能。但是,我更愿意与客户端保持单一连接。这可能吗?

我想答案是否定的,那么我应该如何解决这个问题呢?有解决方法吗?还是我的想法完全愚蠢,我应该改变应用程序的设计?

4

2 回答 2

4

记住 E = ABC(端点 = 地址、绑定、合同)。使用不同的合同,即使其他条件相同,您仍然有不同的端点。

但是,单个服务可以实现多个服务契约。这将允许单个 .svc 文件成为多个不同服务合同的目标,所有服务合同都配置为相对于 .svc 的 URL。

于 2010-03-17T10:06:44.120 回答
0

您可以实现部分类,允许您在单独的 cs 文件中分离内容,同时维护单个接口和端点。这不是最理想的方式,因为归根结底它仍然是由部分类组成的单个类,但至少它在您的文件结构中看起来像它,因此提供了一些分离而不是大量的类文件.

示例结构:

IMyService.cs

[ServiceContract]
public interface IMyService
{
   [OperationContract]
   string GenericMethod()

   [OperationContract]
   string GetUsers(int companyId)

   [OperationContract]
   string GetMessages(int userId)

}

我的服务.cs

//Put any attributes for your service in this class file
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public partial class MyService : IMyService
{
  public string GenericMethod() 
  {
     return "";
  }
}

用户服务.cs

public partial class MyService
{
    public string GetUsers(int companyId) 
    {
       return "";
    }
}

消息服务.cs

public partial class MyService
{
      public string GetMessages(int userId) 
      {
          return "";
      }
}
于 2014-03-19T14:55:31.223 回答