1

次の目標は、は、私は2つのクラスが次のような同じ静的メソッドを実装している

Class A 
{ 
    static OpB(); 
} 

Class B 
{ 
    static OpB(); 
} 

は私がにClassAとClassBのは、コンフィギュレーションを使用して切り替えることのIOCパターンを使用することができますを達成するためのIOCパターンを使用することはできますか? または回避策や提案はありますか?

+0

静的メソッドでクラスを切り替えることはできません。これらのインスタンスを関連させ、両方のクラスを同じインターフェイスまたはクラスから派生させる。メソッド名とパラメータが同じ場合、リフレクションを使用して、いくつかの設定に基づいて異なるクラスの静的メソッドを呼び出すことができます。 –

答えて

2

IoCパターンは、にタイプ(サービス)のインスタンスを作成することに重点を置いているため、静的メソッドの使用をかなり禁止しています。静的メソッドはインスタンスメソッドではないため、IoCコンテナはインスタンスを提供しますが、インスタンスに対して静的メソッドを呼び出すことはできません。

静的修飾子をOpB()メソッドにドロップすることができれば、IoCを使用して必要なことを行うことができます。

+0

静的を削除すると、既存のコードが破損する – user496949

+0

既存のコードを変更することができない場合は、既存のクラスの周りにラッパーを作成できます。 –

関連する問題