我正在使用 Web 应用程序,并且我有一个类,其中包含实现接口的所有业务逻辑。我正在尝试在 startup.cs 中引用接口和类,并尝试在 Controller 中进行初始化。我的业务逻辑类是这样的:
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 文件
- 我不想在控制器中使用新的关键字。
我怎样才能做到这一点?我哪里错了?