所有其他存储库继承的基本存储库

本文关键字:存储 继承 其他 | 更新日期: 2023-09-27 18:19:05

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

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

我使用Unity来实现IOC和DI(在我的控制器中调用)

所有其他存储库继承的基本存储库

你能不能有一个单独的类来处理web服务的调用,供repos使用?例如

public class WebServiceCaller : IWebServiceCaller
{
    private NetworkCredentials credentials { get; set; }
    public WebServiceCaller()
    {
        this.credentials = new NetworkCredentials("Name", "Password");
    }
    // .. Whatever else you need.
}

因此repo会在它们的构造函数中包含这个:

public RepoA(IWebServiceCaller caller)

这样,调用web服务和身份验证的责任就完全从repos中剥离了。

我认为你是在正确的轨道上,因为你也使用了一个DI容器,你可以很容易地实现存储库模式和工作单元。

存储库和工作单元模式