大家!我在方法addBindings中对Ninject遇到了问题 - 无法正确理解解决此问题会更好:
错误CS0311类型'classLibrary1.concrete.efgamerepository'无法 在通用类型或 方法" ibindingtosyntax.to(("。 没有隐含的参考转换 'classLibrary1.concrete.efgamerepository' 'classLibrary1.abstract.igamerepository'。
这是以下代码:
namespace GameStore.WebUI.Infrastructure
{
public class NinjectDependencyResolver : IDependencyResolver
{
private IKernel kernel;
public NinjectDependencyResolver(IKernel kernelParam)
{
kernel = kernelParam;
AddBindings();
}
public object GetService(Type serviceType)
{
return kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return kernel.GetAll(serviceType);
}
private void AddBindings()
{
kernel.Bind<IGameRepository>().To<EFGameRepository>();
}
}
}
efgamerepository
public class EFGameRepository
{
EFDbContext context = new EFDbContext();
public IEnumerable<Game> Games { get { return context.Games; } }
}
要解决此问题EFGameRepository
必须实现IGameRepository
public class EFGameRepository : IGameRepository
{
// implement IGameRepository members implicit or explicit
}