我有一个WCF服务,在单个端点地址上公开了相当多的服务方法。到目前为止,所有服务方法都在一个服务契约类中实现。该服务契约类实现了几个服务契约接口。现在我想将服务契约方法的实现拆分为几个类,以避免契约类变得过大。我使用自托管方案和ServiceHost。ServiceHost只接受实现服务方法的单个类型,因此似乎所有内容都必须在此类中实现。当然,方法的主体可以拆分为几个类。但是是否还有一种方法可以将方法拆分为几个类?
限制服务中操作的数量是一个好方法。据我理解,您目前有一个单一的服务实现,它实现了多个服务契约。这意味着您的服务已经具有多个端点 - 每个端点公开一个单独的契约。在这种情况下,您的客户端已经准备好为每个所需的契约创建单独的代理。
现在,您想将您的服务实现类分成多个服务实现。每个服务实现将实现一个(或更小的)服务契约集。这将需要修改您的托管应用程序 - 您将需要为每个服务实现使用单独的ServiceHost。您还需要为每个服务实现提供单独的配置和唯一地址。
客户端可以只是用新服务重新创建,但我认为也可以简单地更改端点的地址,它应该可以工作。