Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有多个接口的Ninject绑定_C#_Asp.net Mvc 3_C# 4.0_Ninject - Fatal编程技术网

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类部分的接口可能是一个好主意。因此,基本上添加第三个接口,然后将其传递到控制器?这是一个不同的问题,但也请参见。这是一个不同的问题,但也请参见