我在.net核心中进行了一个实现依赖注入,并从接口中调用了调用,如下所述。
控制器
private readonly ILogger<HomeController> _logger;
private readonly IManageUsers _IManageUsers;
public HomeController(ILogger<HomeController> logger, IManageUsers manageUsers)
{
_logger = logger;
_IManageUsers = manageUsers;
}
public IActionResult Index()
{
string data = _IManageUsers.GetData();
return View();
}
接口声明代码
public interface IManageUsers
{
string GetData();
}
实施方法代码
public string GetData()
{
return "DI implemented successfully";
}
当我从控制器调试代码时,称为声明的时间不是接口方法。我做错了什么?
答案 0 :(得分:2)
您做的一切正确。
调用HomeController
时,实现IManageUsers
的对象的实例将传递到构造函数中。在该实例上调用GetData
时,将调用实现中的方法。
接口仅定义实现中必须存在的方法和属性。他们没有自己的实现(...好,default interface methods除外,但这是一个完全不同的主题,您的GetData
方法不是这种情况)。