sim*_*eid 8 c# structuremap generics dependency-injection
我有一个接口IGenericRepository<TEntity> where TEntity : IEntity和一个实现GenericRepository<TEntity> where TEntity : Entity.
我正在尝试IGenericRepository<Section>使用StructureMap 将特定注入到类中:
ObjectFactory.Initialize(x =>
{
x.For(typeof(IGenericRepository<>)).Use(typeof(GenericRepository<>));
});
Run Code Online (Sandbox Code Playgroud)
但当我尝试使用时,ObjectFactory.GetInstance<IGenericRepository<Section>>();我得到:
StructureMap异常代码:202没有为PluginFamily System.Data.Common.DbConnection定义的默认实例
任何想法为什么这是或我做错了什么?
提前致谢,
西蒙
您在GenericRepository的构造函数中接收了一个DbConnection,它是一个抽象类,并且没有配置SM以了解应该使用哪个特定类.
即:
ObjectFactory.Initialize(x =>
{
x.For(typeof(DbConnection)).Use(typeof(SqlConnection));
x.For(typeof(IGenericRepository<>)).Use(typeof(GenericRepository<>));
});
Run Code Online (Sandbox Code Playgroud)