通过获取方法,获取对其他类变量的访问

时间:2013-11-05 13:29:37

标签: c# asp.net

我正在尝试从一个类访问另一个类。我尝试了this question的帮助,但这是在其他方面。我有一个基类如下:

public class BasePage : System.Web.UI.Page
{
    public int MemberUserId
    {
        get
        {
            MembershipUser user = Membership.GetUser();
            if (user != null)
            {
                string memberUserId = user.ProviderUserKey.ToString();
                CustomerBL clientsBL = new CustomerBL ();
                Customers customer = CustomerBL .GetCustomer(memberUserId);
                int customerId = customer .CustomerId;
                return customerId;
            }
            return 0;
        }
  }

}

我希望将customerId提供给此课程如下:

public partial class showCustomer : BasePage
{ 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            LoadCustomerProfile();
        }
    }
    LoadCustomerProfile()
    {
       BasePage basePage;
       int customerId = basePage.customerId; //intellisense is not showing option of customerId
    }
}

当我输入basePage.customerId时,intellisense不会显示customerId,并在我强行键入时给出错误。如果有人帮助我,我会感激不尽。 :)

2 个答案:

答案 0 :(得分:4)

您尚未创建customerId媒体资源。您已创建了MemberUserId媒体资源。

也就是说,您的代码仍然无效,因为您已声明basePage本地变量,但尚未为其分配值。你确定你不想要:

int customerId = MemberUserId;

即。问this

答案 1 :(得分:4)

首先不要制作BasePage变量,其次你有权访问MemberUserId而不是customerId

LoadCustomerProfile()
{
   int customerId = this.MemberUserId; //this used for clarification
}

当然,您可以创建名为customerId的其他BasePage字段,并在showCustomer页面中使用它。

我认为您正在尝试访问MemberUserId,因为它在这里返回customerId:

        int customerId = customer .CustomerId;
        return customerId;