我有一个实现MongoRepository它使用我想注册在容器中的泛型类型的存储库到目前为止,这是我得到:解决了依赖ServiceStack IOC容器
public override void Configure(Container container)
{
container.RegisterAutoWiredAs<UserRepository,
IUserRepository>();
//Trying to wireup the internal dependencies
container.RegisterAutoWiredType(
typeof(MongoRepository<>),
typeof(IRepository<>));
}
我试过RegisterAutoWiredAs<UserRepository>
为好。
问题是,当我跑我得到了以下错误的应用:
Error trying to resolve Service '{ServiceName}' or one of its autowired dependencies
我猜是因为我已经注册了仓库,但不会注册的MongoDB库作为一个依赖。
据我所知funq doesn't support generics,但我不确定这是否与ServiceStack是相同的情况。
回购具有以下定义:
public class UserRepository
: MongoRepository<User>, IUserRepository
{
}
public interface IUserRepository : IRepository<User>
{
}
编辑:
这是服务定义,实际上是非常基本的!
public class MyService : Service {
private readonly IUserRepository _userRepository;
public MyService(IUserRepository userRepository)
{
_userRepository = userRepository;
}
public UserResponse Any(UserRequest userRequest)
{
//_userRepository.GetById(id)
}
}
的DTO:
public class UserRequest
{
public string Id { get; set; }
}
public class UserResponse
{
public User User { get; set; }
}
有I'm问题网络IRepository与MongoRepository –
@Pedro你假设魔术行为,Funq中没有 - 我更新了我的答案以显示明确的注册。 – mythz
感谢您的更新!但我试图解决从MongoRepository继承的UserRepository,我已经注册了,所以我认为它必须是其他的,因为如果我从继承中删除mongoRepository,它工作正常! –