Предположим, у меня есть общий интерфейс и общая реализация. Как зарегистрировать все виды использования?Как зарегистрировать общий интерфейс с использованием TinyIOC
В частности, у меня есть следующие (уменьшенный для простоты):
container.Register<IRepository<Entity1>, AzureRepository<Entity1>>();
container.Register<IRepository<Entity2>, AzureRepository<Entity2>>();
container.Register<IRepository<Entity3>, AzureRepository<Entity3>>();
...
Или есть более короткий путь:
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
{
...
}
мне нужно зарегистрировать все реализации один за другим, как так делать ?
Вы хотите что-то ищите? https://github.com/grumpydev/TinyIoC/issues/8 –
Нет. В этом примере он регистрирует все зависимости IRepository (IR, IR и т. д.) как AzureRepository . –
seldary
Я могу подтвердить это поведение (в версии 2.1), но это явно ошибка. – TeaDrivenDev