C# 具有多个接口的Ninject绑定
我有一个这样的控制器:C# 具有多个接口的Ninject绑定,c#,asp.net-mvc-3,c#-4.0,ninject,C#,Asp.net Mvc 3,C# 4.0,Ninject,我有一个这样的控制器: public class Controller { public TokenService _service; [Inject] public Controller(TokenService service) { _service = service; } } public class TokenService: IInterface1, IInterface2 {} TokenService的外观如下所示:
public class Controller
{
public TokenService _service;
[Inject]
public Controller(TokenService service)
{
_service = service;
}
}
public class TokenService: IInterface1, IInterface2 {}
TokenService的外观如下所示:
public class Controller
{
public TokenService _service;
[Inject]
public Controller(TokenService service)
{
_service = service;
}
}
public class TokenService: IInterface1, IInterface2 {}
我该如何在Ninject中绑定它?我本以为我需要将控制器中的TokenService构造函数参数更改为这两个接口之一
我之所以有2个接口,是因为TokenService用于DotNetOpenAuth。通常,您根本不需要绑定它,因为据我所知,Ninject会自动将所有具体类型绑定到它们自己 如果情况并非如此,请自己动手:
kernel.Bind<TokenService>().ToSelf();
通常,您根本不需要绑定它,因为据我所知,Ninject会自动将所有具体类型绑定到它们自己 如果情况并非如此,请自己动手:
kernel.Bind<TokenService>().ToSelf();
这是用于测试目的的糟糕做法吗?自绑定?或者您使用具体类型作为控制器中的依赖项?具体类型作为依赖项它违反了您应该针对抽象进行编程的原则,是的。提取一个包含控制器所需的TokenService类部分的接口可能是一个好主意。因此,基本上添加第三个接口,然后将其传递到控制器中?这是用于测试目的的错误做法吗?自绑定?或者您使用具体类型作为控制器中的依赖项?具体类型作为依赖项它违反了您应该针对抽象进行编程的原则,是的。提取一个包含控制器所需的TokenService类部分的接口可能是一个好主意。因此,基本上添加第三个接口,然后将其传递到控制器?这是一个不同的问题,但也请参见。这是一个不同的问题,但也请参见