我目前通过WCF提供了许多方法的服务。我想重构,所以单个服务被分成多个类,每个类提供一组不同的功能。但是,我宁愿仍然只有一个连接到客户端。这可能吗?
我猜答案是否定的,那么我应该如何解决这个问题呢?有解决方法吗?或者我的想法完全是愚蠢的,我应该改变应用程序的设计?
答案 0 :(得分:4)
记住E = ABC(端点=地址,绑定,合同)。有了不同的合同,即使其他条件相同,你仍然有不同的终点。
但是,单个服务可以实施多个服务合同。这将允许单个.svc文件成为几个不同服务合同的目标,所有服务合同都配置为相对于.svc的URL。
答案 1 :(得分:0)
您可以实现部分类,允许您在维护单个接口和端点时将各个cs文件中的内容分开。这不是最理想的方式,因为在一天结束时,它仍然是由部分类组成的单个类,但至少它在您的文件结构中看起来像它,因此给出了一些分离而不是大量的类文件。
<强> IMyService.cs 强>
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GenericMethod()
[OperationContract]
string GetUsers(int companyId)
[OperationContract]
string GetMessages(int userId)
}
<强> MyService.cs 强>
//Put any attributes for your service in this class file
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public partial class MyService : IMyService
{
public string GenericMethod()
{
return "";
}
}
<强> UserService.cs 强>
public partial class MyService
{
public string GetUsers(int companyId)
{
return "";
}
}
<强> MessagingService.cs 强>
public partial class MyService
{
public string GetMessages(int userId)
{
return "";
}
}