我有一个实现 MongoRepository 的存储库,它使用泛型我正在尝试在容器中注册类型到目前为止,这就是我得到的:
public override void Configure(Container container)
{
container.RegisterAutoWiredAs<UserRepository,
IUserRepository>();
//Trying to wireup the internal dependencies
container.RegisterAutoWiredType(
typeof(MongoRepository<>),
typeof(IRepository<>));
}
我也试过RegisterAutoWiredAs<UserRepository>
了。
问题是当我运行应用程序时出现以下错误:
尝试解析服务“{ServiceName}”或其自动装配的依赖项之一时出错
我猜是因为我注册了存储库而没有将 mongoDB 存储库注册为依赖项。
据我所知funq 不支持 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; }
}