Реализация интерфейса и инициализация его в контроллере 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 

 }

Моя проблема заключается в следующем:

  1. Конструктор не выполняется и в результате UserMasterRepository является нулевым при доступе из действия.
  2. services.AddMvc(); в файле startup.cs не существует
  3. Я знаю, что могу выполнить свои требования с помощью Ninject, но я хочу использовать файл startup.cs
  4. Я не хочу использовать новое ключевое слово в контроллере.

Как мне этого добиться? Где я не прав?

1 ответ

Решение

Установка ASP.NET 5 во время выполнения и инструментарий решают мою проблему.

Другие вопросы по тегам