2

クラスの1つに依存関係を注入したいのですが、そのようなツールにリファクタリングがあるかどうか、ResharperまたはそれDevExpressを行うためにリファクタリングがあるかどうかわかりません。

これが私のクラスです:

   public class ClassWithInjections
   {
      private Dependency _fieldInjected;
   }

   public class Dependency
   {

   }

そして、私が望む最終結果は次のようになります:(フィールドはメソッドによって初期化できることに注意してくださいInitialize

   public class ClassWithInjections
   {
      private Dependency _fieldInjected;

      public void Initialize(Dependency fieldInjected)
      {
         _fieldInjected = fieldInjected;
      }
   }

マウスカーソルでフィールドを指定しているときにリファクタリングオプションをアクティブにしてから、メソッド、プロパティ、またはコンストラクターで依存関係を挿入するかどうかを提案するツールをアクティブにできるようにしたいです。

を使用Resharperすると、「フィールドのカプセル化」(Ctrl+ Shift+ R)を使用するか、コード生成ツール(Alt- Insert)を使用してコンストラクターを作成できますが、「メソッド」手法を使用して依存関係を挿入するオプションが見つかりません。

誰かが解決策を持っていますか?

4

2 に答える 2

4

初めに。メソッドを使用して依存関係を注入しないでください。ここを読んでください。循環依存の問題を解決するためにのみプロパティインジェクションを使用します。

それはコンストラクターの注入を残します。

Resharperはあなたを助けることができます。フィールドを押しALT+ENTERて、「コンストラクタで初期化」を選択します

'method'手法を使用して依存関係を注入するオプションが見つかりません。

上手。あなたはそれを避けるべきなので、それは存在しません;)

于 2012-06-05T06:38:30.537 に答える
1

DevExpressリファクタリングを使用できます!Pro>この目的のためのSetterメソッドリファクタリングオプションの作成。

于 2012-06-05T11:35:34.787 に答える