C# 使用ninject注册实现通用接口的类
我有这个界面:C# 使用ninject注册实现通用接口的类,c#,.net,ninject,C#,.net,Ninject,我有这个界面: public interface IObjectFactory<T> { T NewObject(); } 公共接口IObjectFactory { T NewObject(); } 我可以有多个类用不同的参数实现这个接口 public class UserFactory : IObjectFactory<IUser> { public IUser NewObject() => new Use
public interface IObjectFactory<T>
{
T NewObject();
}
公共接口IObjectFactory
{
T NewObject();
}
我可以有多个类用不同的参数实现这个接口
public class UserFactory : IObjectFactory<IUser>
{
public IUser NewObject() => new User();
}
公共类UserFactory:IObjectFactory
{
public IUser NewObject()=>新用户();
}
我想扫描所有程序集以绑定所有类,这样我就可以不用创建直接绑定指令了。我遇到的问题是通用接口和普通示例不起作用。
如何解决此问题?使用ninject.extensions.conventions
kernel.Bind(
c => c.FromThisAssembly()
.SelectAllClasses()
.InheritedFrom(typeof(IObjectFactory<>))
.BindAllInterfaces());
kernel.Bind(
c=>c.FromThisAssembly()
.SelectAllClasses()
.继承自(typeof(IObjectFactory))
.BindAllInterfaces());
已经尝试过了,但问题是我有一个带有通用参数的接口