实现接口并在 MVC 控制器中初始化它
Implementing Interface and initialise it in MVC Controller
我正在使用 Web 应用程序,我有一个 class,它具有实现接口的所有业务逻辑。我正在尝试在 startup.cs 中引用接口和 class 并尝试在控制器中初始化。我的业务逻辑class是这样的:
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 文件
- 我不想在控制器中使用新关键字。
我怎样才能做到这一点?我哪里错了?
安装 ASP.NET 5 runtime and tooling 解决了我的问题。
我正在使用 Web 应用程序,我有一个 class,它具有实现接口的所有业务逻辑。我正在尝试在 startup.cs 中引用接口和 class 并尝试在控制器中初始化。我的业务逻辑class是这样的:
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 文件
- 我不想在控制器中使用新关键字。
我怎样才能做到这一点?我哪里错了?
安装 ASP.NET 5 runtime and tooling 解决了我的问题。