Giả sử tôi có giao diện chung và triển khai chung. Làm cách nào để đăng ký tất cả các tập quán?Cách đăng ký giao diện chung bằng TinyIOC
Cụ thể, tôi có như sau (giảm vì đơn giản):
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
{
...
}
Tôi có cần phải đăng ký tất cả triển khai từng người một, như vậy:
container.Register<IRepository<Entity1>, AzureRepository<Entity1>>();
container.Register<IRepository<Entity2>, AzureRepository<Entity2>>();
container.Register<IRepository<Entity3>, AzureRepository<Entity3>>();
...
Hoặc là có một cách ngắn ?
Đây có phải là những gì bạn đang tìm kiếm không? https://github.com/grumpydev/TinyIoC/issues/8 –
Không - Trong ví dụ này, nó đăng ký tất cả các phụ thuộc IRepository (IR, IR , vv ..) dưới dạng AzureRepository . –
seldary
Tôi có thể xác nhận hành vi này (trong v1.2) - nhưng rõ ràng là một lỗi. – TeaDrivenDev