Реализация интерфейса и инициализация его в контроллере MVC
Я работаю с веб-приложением, и у меня есть класс, в котором есть вся бизнес-логика, реализующая интерфейс. Я пытаюсь сослаться на интерфейс и класс в startup.cs и инициализировать в контроллере. Мой класс бизнес-логики выглядит так:
public class User_MasterDataAccesss: IUserMasterRepository
{
.... business logic
public int validate(string name)
{
...... doing something
}
}
У меня есть интерфейс, который имеет определение для функции проверки, как это
public interface IUserMasterRepository
{
int validate(string name);
}
Я пытаюсь привязать интерфейс в startup.cs вот так
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
// services.AddMvc();
// Add application services.
services.AddSingleton<IUserMasterRepository, User_MasterDataAccesss>();
}
}
и я пытаюсь инициализировать интерфейс в контроллере, как это
public class AuthenticationController : Controller
{
private IUserMasterRepository UserMasterRepository;
public AuthenticationController() { }
public AuthenticationController(IUserMasterRepository userMasterRepository)
{
this.UserMasterRepository = userMasterRepository;
}
......... action result actions which is using the UserMasterRepository
}
Моя проблема заключается в следующем:
- Конструктор не выполняется и в результате
UserMasterRepository
является нулевым при доступе из действия. services.AddMvc();
в файле startup.cs не существует- Я знаю, что могу выполнить свои требования с помощью Ninject, но я хочу использовать файл startup.cs
- Я не хочу использовать новое ключевое слово в контроллере.
Как мне этого добиться? Где я не прав?
1 ответ
Решение
Установка ASP.NET 5 во время выполнения и инструментарий решают мою проблему.