ジェネリックを使用する 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}' またはその自動配線された依存関係の 1 つを解決しようとしてエラーが発生しました
mongoDBリポジトリを依存関係として登録せずにリポジトリを登録したためだと思います。
私の知る限り、funq はジェネリックをサポートしていませんが、それが 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; }
}