1

我想知道是否有人可以提供一些建议。我有 2 个存储库,存储库 A 和存储库 B。这两个存储库当前都有一个方法,用于设置网络凭据以连接到 Web 服务,但是每次我调用 Web 服务时,我都必须调用这个方法,这是一个大量重复代码(每个 Web 服务的网络凭据都相同)。所以我希望有更好的方法来做到这一点?

我在想的是拥有一个所有其他存储库都继承的基础存储库,它被实例化并设置网络凭据,以便在连接到 Web 服务时可以使用它们。这会是这样做的好方法还是有更好的方法?

只是补充一下,我正在使用 Unity 进行 IOC 和 DI(在我的控制器中调用)

4

2 回答 2

2

难道你不能有一个单独的类来处理 web 服务的调用,repos 可以使用它吗?例如

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 服务和进行身份验证的责任就完全从存储库中移除了。

于 2013-06-20T09:23:05.880 回答
0

我认为您走在正确的轨道上,因为您还使用了 DI 容器,您可以轻松实现存储库模式和工作单元。

存储库和工作单元模式

于 2013-06-20T09:25:15.483 回答