跨控件和页面共享的类

时间:2012-09-26 19:24:54

标签: c# asp.net vb.net

这基本上就是设计问题,就像在我的web asp.net 4.0 Web表单应用程序中构建代码的最佳方式一样。我的一般设计是这样的......

Master Page
     Has few User Controls
     Content Pages
         Inherit from Base Class
     User Controls within Content Pages

我需要在一个CALL&中获得一些来自数据库的设置内容。将结果存储到类中。然后这个类将在整个页面中共享(在母版页,基类,内容页面和用户控件中)。

初始化此类并在整个页面lifectycle中轻松访问它的最佳位置。

我应该打数据库&在BASE PAGE中初始化Class,然后在BASE Class中更新Master Pages ..就像这个

Page.master.findControl("label").Text = myClass.Setting1

然后内容页面及其用户控件也需要访问此类。

请告知最佳做法。

1 个答案:

答案 0 :(得分:1)

如果这是应用程序的所有用户通用的完全共享数据,则将其放在作为类的静态属性公开的数据容器中,并使用此类的静态构造函数中的数据库填充此容器。

public class SettingsData
{
  public string Setting1;
  public string Setting2;
}

public static class DataHolder
{
  public static SettingsData Settings = new SettingsData();
  static DataHolder() 
  {
    // open connection to db and query for values
    Settings.Setting1 = <value from db>;
    Settings.Setting2 = <value from db>;
  }
}

然后在代码中

  Label1.Text = DataHolder.Settings.Setting1;