假設我有一個通用接口和一個通用實現。我如何註冊所有用途?如何使用TinyIOC註冊通用接口
具體而言,我有以下(減小爲簡單起見):
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
{
...
}
是否需要一個接一個地註冊所有實施方式中,像這樣:
container.Register<IRepository<Entity1>, AzureRepository<Entity1>>();
container.Register<IRepository<Entity2>, AzureRepository<Entity2>>();
container.Register<IRepository<Entity3>, AzureRepository<Entity3>>();
...
或者是有一個較短的方式?
這是你在找什麼? https://github.com/grumpydev/TinyIoC/issues/8 – 2013-03-16 14:39:53
否 - 在此示例中,它將所有的IRepository依賴項(IR,IR 等)註冊爲AzureRepository 。 –
seldary
2013-03-16 19:52:42
我可以證實這種行爲(在v1.2中) - 但這顯然是一個錯誤。 – TeaDrivenDev 2013-03-30 00:55:02