【发布时间】:2023-12-16 11:54:01
【问题描述】:
假设我有以下课程:
public class AsyncEntityManager<E> : EntityManager<E>, IAsyncEntityManager<E>
where E : IPersistableEntity
{
public AsyncEntityManager(ICollection<IPersistenceStrategy<E>> strategies, ILogger logger) : base(strategies, logger) { }
}
在这种情况下如何注入集合?
这是我尝试过的:
internal class PersistenceModule : ApplicationModule
{
public override void Load()
{
Kernel.Bind<ICollection<IPersistenceStrategy<User>>>().ToMethod(c => new IPersistenceStrategy<User>[] {
(IPersistenceStrategy<User>)c.Kernel.GetService(typeof(DynamoDBStrategy<User>))
});
Kernel.Bind<IAsyncEntityManager<User>>().To<AsyncEntityManager<User>>();
}
}
但是,该集合被注入没有元素。它 not 为 null,但其中根本没有任何元素。不过,ILoggeer 被注入就好了。
【问题讨论】:
标签: c# .net c#-4.0 dependency-injection ninject