2012-02-14 7 views
0

アプリケーションデータ層では、データ交換用のストアドプロシージャとWebサービスを完全に使用します。私たちは、私たちは ストアドプロシージャ名のような構成情報を格納するための適切な形式

    1. 設定ファイルのいくつかのフォームに、我々は(クラスファイル内である)、コードの上に削除する方法を探しているストアドプロシージャ

      switch(requesttype) 
      {  
          case "GetEmployees": 
           switch (crud_type) 
             { 
              case "read": 
                Execute Stored Procedure 'A' 
              break; 
             } 
          break;  
      } 
      

      を実行するために、ページのロード中に以下のようなコードを使用し

    2. 取得(パースなど、読み取り)と(など、変更、書き込み)を保存することが非常に高速であるファイルの保存形式を探している私たちは、それ

    3. 上のセキュリティ層を実装することができ210
    4. 既存のコードに大きな変更や大きな変更を加えることなく、これを実現します。

  • +0

    質問がちょっと違っていて、ちょうどあなたが探しているものを伝えるのが少し難しい –

    +0

    @DanielPowellそれは今のところ質問形式に合っていますか? – Deeptechtons

    +1

    3つの列を持つSqliteテーブルがジョブを実行しますか? (RequestType、CrudType、StoredProcedureName) –

    答えて

    1

    私は自分より先に進んだと思う。コードはに実行するので、設定をコードに置き換えることはできませんが、設定ではコードに何かを何かやる方法を伝えるだけです(設定自体にコードが含まれていない限り、逆説があります)。コードに設定可能性を適用するには、まず汎用/汎用(switchステートメントはではなく、現在はではないことを示す)にする必要があります。これを行うための私のアプローチは私の元の答え(下記)に記述されています。それ自体は設定可能ではありませんが、そうすることができます(私はそれをかなり単純に行っています)。コードは元の質問に基づいていますので、正しく読めるように目を再調整してください。


    私が過去にを選んだしましオプションはシングルトンに収納されたか、IoCコンテナの形で自分のコードサンプルを所有している関数に渡されるかどうか(工場を使用することであった。

    public class DbOperationAttribute : Attribute 
    { 
        public string Operation { get; set; } 
    } 
    

    そしてAPI NEを提供するために、共通のインターフェイス:私のアプローチの非常に高いレベルの実装では、あなたのタイプが便利ですときのようなものをを示すプロパティが含まれているカスタム属性を定義することは基本的ですあなたのコードが実行されるように編集します。何かのように:

    public interface IDoSomethingSpecial 
    { 
        bool Execute(SomeExecutionContext context); 
    } 
    

    そして、あなたは属性で特定のクラスを飾ると、彼らはアクションごとに適切であることを示すために、インターフェイスを実装:

    [DbOperation(Operation = "Read")] 
    public class DBReadOperation : IDoSomethingUseful 
    { 
        // Our implementation of the `IDoSomethingUseful` interface 
        public bool Execute(SomeExecutionContext context) 
        { 
         // Do something useful in here 
        } 
    } 
    

    あなたがする必要がありますあなたのプログラムの中でいくつかの点でどのタイプがどのアクションに適しているかを発見できる。私はこれを反映させていますが、これは設定と同じように簡単に行うことができます(属性のポイントを無効にします)。いくつかのIoCコンテナは類似の検出可能性属性を提供しますが、他の誰かを使用すると、あなたは自分たちのやり方(通常)を行い続けるでしょう。私はちょうどあなたの設定を保存するためにApp.Config/Web.Configを使用しての方に傾くだろう、この設計に基づいて

    IDoSomethingUseful someAction = myCollectionOfUsefulThings(requesttype); 
    someAction.Execute(someInstanceOfOurContextType); 
    

    :あなたはどのアクションに対して適切であるタイプを発見したら

    、あなたのようなものを使用することができます。とにかくそれは一般にそこにあるでしょう。同様にあなたの目的のためにそれを使用するかもしれません。

    +0

    質問をより直接的に反映するように編集されています。 –

    関連する問題