我想知道是否有人可以提供一些建议。我有2个存储库,存储库A和存储库B.这两个存储库目前都有一个方法,用于设置网络凭据以连接到Web服务,但是每次调用Web服务时我都必须调用此方法,这是一个大量重复代码(每个Web服务的网络凭据都是相同的)。所以我希望有更好的方法来做到这一点?
我想的是拥有一个所有其他存储库继承的基本存储库,它将实例化并设置网络凭据,以便在连接到Web服务时可以使用它们。这是一个很好的方法吗?还是有更好的方法?
添加我正在使用Unity for IOC和DI(在我的控制器中调用)
答案 0 :(得分:2)
你能否拥有一个单独的类来处理调用Web服务的问题? e.g。
public class WebServiceCaller : IWebServiceCaller
{
private NetworkCredentials credentials { get; set; }
public WebServiceCaller()
{
this.credentials = new NetworkCredentials("Name", "Password");
}
// .. Whatever else you need.
}
因此,回购将在其构造函数中具有此功能:
public RepoA(IWebServiceCaller caller)
这样,调用Web服务和进行身份验证的责任就完全从存储库中删除了。
答案 1 :(得分:0)
我认为您走在正确的轨道上,因为您还使用了DI容器,您可以轻松实现存储库模式和工作单元。