Ray*_*ond 1 c# asp.net-mvc dependency-injection ioc-container unity-container
我有一个MVC应用程序Controller需要一个IDomainService.在DomainService类的构造函数需要一个IRepository
与Repository类的构造函数需要一个连接字符串.
我有这样的事情:
string connectionString = ConfigurationManager
.ConnectionStrings["ApplicationServices"].ConnectionString;
c.RegisterInstance("ConnectionString", connectionString);
c.RegisterType<IDepartmentRepository, DepartmentRepository>(
"DepartmentRepository",
new InjectionConstructor(connectionString));
c.RegisterType<IDepartmentDomainService, DepartmentService>(
new InjectionConstructor(
new ResolvedParameter<IDepartmentRepository>(
"DepartmentRepository")));
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.
我做错了吗?我对存储库注入没有任何问题,但我无法注入(使用存储库)我的域服务.
谢谢.
我通常会为此添加一个小类:
public class AppConfigConnectionFactory : IConnectionFactory
{
public IDbConnection Create()
{
return new SqlConnection(ConfigurationManager
.ConnectionStrings["ApplicationServices"].ConnectionString);
}
}
c.RegisterType<IConnectionFactory, AppConfigConnectionFactory>();
c.RegisterType<IDepartmentRepository, DepartmentRepository>();
Run Code Online (Sandbox Code Playgroud)
如果你不需要,不要依赖字符串.而且,您还可以使用此解决方案避免每个存储库中的代码重复.
| 归档时间: |
|
| 查看次数: |
1222 次 |
| 最近记录: |