Я обновляю старый проект веб-форм, который работает по модели MVP. Реорганизовав это в многоуровневый проект, я начал использовать DI с помощью Unity.
У меня есть файлы ниже с моим новым DI, но в моем Presenter параметризованный конструктор не вызывается, и ObjView возвращает ноль. Как я могу исправить эту ошибку
IUsersView
{
int UserID { get; set; }
List<UsersModel> oPTList { get; set; }
//Have only few methods
}
, и у меня есть страница, показанная ниже
Users(.aspx.cs) : System.Web.UI.Page, IUsersView
{
UserPresenter obj = null; //Old code
IUserPresenter _userPresenter = null;
public readonly IUsersView _userView;
public readonly IUser _user;
public User(IUser user,
IUserPresenter userPresenter)
{
_user= user;
_userPresenter = userPresenter;
}
protected void Page_Load(object sender, EventArgs e)
{
try{
obj = new UserPresenter(this, _projectUpload); //Old Code
obj.CheckLoginUserExist(usrLoginID, usrName); //Old Code
_UserPresenter.CheckLoginUserExist(usrLoginID, usrName); // New Code with DI
}
}
}
и код докладчика
public class UserPresenter : IUserPresenter
{
IUserView objView;
IUser _user= null;
public UserPresenter()
{
}
public UserPresenter(IUserView view, IUser user)
{
objView = view;
_user = user;
}
public void CheckLoginUserExist(int usrLoginID, string usrName)
{
objView.oPTList = objBL.GetUserRoles(usrLoginID,usrName); //Old Code and i am getting date from DAL layer
objView.GetUserRoles(); //Old Code
}
}