【发布时间】:2012-05-15 14:00:03
【问题描述】:
我有一个通用接口:
public interface IRepository<T> { ... }
我有一个这样的实现:
public class Repository<T> {
public Repository<T>() { ... }
}
StructureMap (v 2.6.3) 配置如下:
For(typeof(IRepository<>)).Use(typeof(Repository<>));
当我尝试从 StructureMap 中提取 IRepository<Something> 时,我得到了预期的 Repository<Something>。 万岁!
现在我添加了第二个构造函数,实现如下所示:
public class Repository<T> {
public Repository<T>() { ... }
public Repository<T>(string database) { ... }
}
当我现在尝试获取IRepository<Something> 时,我得到一个异常,因为它默认尝试使用带有参数的新构造函数。 嘘!
如何更改我的 StructureMap 配置,使其知道使用无参数构造函数?
【问题讨论】:
标签: c# generics inversion-of-control structuremap