【发布时间】:2016-03-26 14:37:30
【问题描述】:
我正在构建一个 WebApi,但我有一些问题......
我为每个请求创建了服务,例如产品、客户、销售等。每个服务注入从基础存储库继承的存储库表,例如:
public ProductService(IProductRepository productRepository,
IProductPriceRepository productPriceRepository,
IProductProviderRepository productProviderRepository)
{
}
例如,SaleService 需要其他服务,例如:
public SalesService(IDocumentService documentService,
ICustomerService customerService,
IProductService productService)
{
}
这或多或少是我的应用程序的架构。 问题是我需要另一个用于 API 配置的数据库上下文,如何在不使注入冗余的情况下实现这一点的正确方法是什么?喜欢:
public ProductService(IProductRepository productRepository,
IProductPriceRepository productPriceRepository,
IProductProviderRepository productProviderRepository,
ConfigurationApiContextService configurationApicontextService)
{
}
public SalesService(IDocumentService documentService,
ICustomerService customerService,
IProductService productService,
ConfigurationApiContextService configurationApicontextService)
{
}
我正在使用 IoC Unity。 这是向服务添加另一个 dataContext 的正确方法吗?是否可以让整个应用都可以全局访问新的 dataContext?
如果这是正确的方法,如果以后我想添加 log4net 包来记录整个应用程序,是否有太多的服务注入?
抱歉这些问题,刚开始使用 WebApi ;)
对于英语不好也很抱歉。
提前致谢。
【问题讨论】:
-
您会在当前存储库中使用第二个数据库上下文吗?或者只是 ConfigurationApiContextService 将使用第二个数据库上下文?
-
只是配置apicontext 将使用ti第二个数据库上下文,它只是客户端发送的数据和最终存储在系统上的数据之间的数据解析器。问题是,当例如 salesservice 依赖于 poductservice 时,是否有一些方法可以不重复注入。感谢您的遮阳篷 :)
标签: c# dependency-injection asp.net-web-api2