Как получить доступ к элементу формы в частичном классе в другом классе?

#c# #asp.net #oop

#c# #asp.net #ооп

Вопрос:

Как получить доступ к элементу формы в частичном классе внутри другого класса?Например;

 public class BusinessLayer{ //I wanna access Login class in here }

public partial class Login : System.Web.UI.Page{ }
 

Комментарии:

1. Я не знаю ваших настроек, но я бы не хотел добавлять представление (aspx-страницу) к своему бизнес-уровню. Попробуйте вместо этого передать данные.

2. Согласен с @MartijnB Если бы мне абсолютно необходимо было передать часть уровня представления на бизнес-уровень, я бы определил интерфейс на бизнес-уровне, реализовал его в классе Login и передал его как этот интерфейс. Тем не менее, было бы предпочтительнее полностью избегать этого.

Ответ №1:

Вам нужно передать ссылку на BusinessLayer конструктор

 public class BusinessLayer {
  private Login _login;
  public BusinessLayer(Login login) {
    _login = login;
  }
}

public partial class Login : System.Web.UI.Page() {
  public void Method() {
    BusinessLayer layer = new BusinessLayer(this);
    ...
  }
}
 

Обратите внимание, что эта проблема имеет мало / ничего общего с partial class типами. Та же проблема была бы применима и к стандартным class типам

Комментарии:

1. Во-первых, @JaredPar большое вам спасибо за помощь. Но я не создаю экземпляр Login в классе BusinessLayer. Тем временем войдите в класс веб-формы (Login.aspx), BusinessLayer в папку App_Code.