c# - Autofac - 解决服务中的具体实现
问题描述
我有一个类似这样的类层次结构
interface IDbHelper{
//some functions
}
class dbHelper: IDbHelper{
private readonly **AppContext**
//call db functions
}
interface IService{
private readonly idbHelper;
}
class Service: IService{
private readonly IdbHelper
//call db functions
}
Interface IApp{
//do some functions
}
class App1: IApp{
private readonly IService;
}
class App2: IApp{
private readonly IService;
}
所以这是一个正在使用的类的简单结构我有一个 IApp 接口,它有 2 个实现,App1和App2,这些类中的每一个都使用相同的Service实现,而服务又使用 DBHelper 的实现,它使用 AppContext .
应用程序上下文因所使用的应用程序而异。
每个类都使用 autofac 容器注册,例如
builder.RegisterType<App1>().As<IApp>();
builder.RegisterType<App2>().As<IApp>();
builder.RegisterType<Service>().As<IService>();
builder.RegisterType<DBHelper>().As<IDBHelper>();
应用程序、服务和帮助程序所需的每个类都是通过构造函数注入的。而且我希望在 AppContext 的情况下具有相同的功能,以便在解决特定应用程序的依赖关系时创建而不是单个应用程序。例如,当 App1 被解析时,我希望 App1 的上下文在 DBHelper 中使用,并且 App2 与 App2 一起使用的上下文被解析。
我将如何实现这一目标?
解决方案
推荐阅读
- python - 如何整合两个python文件夹?
- database - 如何获取字段的数据类型名称
- mysql - MySQL条件日期查询
- python - Windows 仅在进程停止后写入文件
- javascript - If 语句在箭头函数中不起作用
- azure - Azure 蓝图无效工件功能
- java - 如何在正整数序列中每第 5 个和后面的第 3 个数字之后打印一个额外的 *?
- react-native - 无法构建最新的 react-native 代码更改并将其显示在 Expo 应用程序上
- c - 查找数组中的第二个正值
- flutter - “期望一个标识符”和“期望找到')'”对于 Flutter 中的每个错误