汎用インターフェースと汎用実装があるとします。すべての使用状況を登録するにはどうすればよいですか?
具体的には、次のものがあります(簡単にするために縮小しています):
public interface IRepository<T> where T : TableEntity
{
T GetById(string partitionKey, string rowKey);
void Insert(T entity);
void Update(T entity);
void Update(string partitionKey, string rowKey, Action<T> updateAction);
void Delete(T entity);
IQueryable<T> Table { get; }
}
public class AzureRepository<T> : IRepository<T> where T : TableEntity
{
...
}
次のように、すべての実装を 1 つずつ登録する必要がありますか。
container.Register<IRepository<Entity1>, AzureRepository<Entity1>>();
container.Register<IRepository<Entity2>, AzureRepository<Entity2>>();
container.Register<IRepository<Entity3>, AzureRepository<Entity3>>();
...
それとももっと短い方法がありますか?