Ninject实施后的可访问性不一致

时间:2016-02-02 03:31:41

标签: c# asp.net asp.net-mvc

我刚刚将Ninject依赖注入添加到我的代码中,并且在修改构造函数后,我在构造函数上收到以下错误:

Inconsistent accessibility: parameter type 'Final.Models.IUserRepo' is less accessible than method 'Final.Controllers.HomeController.HomeController(Final.Models.IUserRepo)'    C:\Users\Ali\Documents\Final\Final\Controllers\HomeController.cs    17  16  Final

以下是我的 HomeController

public class HomeController : Controller
{
    IUserRepo repo;

    public HomeController(IUserRepo u)
    {
        u = repo;
    }
}

这是我的界面:

namespace Final.Models
{
    interface IUserRepo
    {
        void save(User u);
    }
}

我尝试将所有方法更改为公开但没有任何效果。

1 个答案:

答案 0 :(得分:2)

将其设为公共界面。这是错误消息告诉你的内容。如果接口是私有的,则不能将它用作公共方法(构造函数)的参数。否则,如何构建HomeController

namespace Final.Models
{
    public interface IUserRepo
    {
        void save(User u);
    }
}

此外,您应该修改代码以遵循标准C#命名约定。不要使用缩写,PascalCase是你的方法名称。

namespace Final.Models
{
    public interface IUserRepo
    {
        void Save(User uuser);
    }
}