0

これは基本的に設計上の問題です。たとえば、Web asp.net 4.0 Web フォーム アプリケーション内でコードを構成するための最良の方法は何でしょうか。私の一般的なデザインはこんな感じです...

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

1回のCALLでデータベースからいくつかの設定を取得し、結果をクラスに保存する必要があります。このクラスは、ページ全体 (マスター ページ、基本クラス、コンテンツ ページ、およびユーザー コントロール) で共有されます。

このクラスを初期化し、ページのライフサイクル全体で簡単にアクセスするには、どの場所が最適でしょうか。

データベースにアクセスして BASE PAGE のクラスを初期化し、BASE クラス内からマスター ページを更新する必要があります。このように

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

コンテンツ ページとそのユーザー コントロールも、このクラスにアクセスする必要があります。

ベストプラクティスを教えてください。

4

1 に答える 1

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;
于 2012-09-26T20:10:03.003 に答える