Unityを使用して抽象クラスを解決したい。 抽象クラスには特定のジェネリックを持つ実装があります。たとえば:ジェネリックスに基づいて抽象クラスを解決する
UnityContainer.Resolve<Iface<SomeClassExample, OtherClassExample>>();
しかし、それはエラー例外がある与えます:
public abstract class Iface<S, T> where S : SomeClass where T : OtherClass
public class face : Iface<SomeClassExample, OtherClassExample>
は、その後、私は実行したい
例外InvalidOperationException - 抽象クラスのインスタンスを作成することはできません。
私は抽象クラスを作成したいので、明らかです。私はUnityがジェネリックスに基づいて特定のクラスを見つけるのに十分にスマートであることを望んだ。このようなことは可能ですか?
ユニティは依存性注入容器であり、魔法のランプではありません。リフレクションを介して実装を登録する。 – Dbl
はい、 'face'をUnityに登録する必要があります。コードが' Iface 'を問い合わせるときに' face'を使用するように指示する必要があります。 –
Brandon
顔を登録する必要がある場合、ここで反射を使用する点は何ですか?私はnew face()を呼び出すこともできます。 –
Wouter