1

重複の可能性:
コンストラクターのパラメーターを Unity の Resolve() メソッドに渡すことはできますか?
C#/Unity でのコンストラクター インジェクション?

解決するサービスのコンストラクターで引数を渡してユニティを使用して依存関係を解決することは可能ですか?

それがどうすればできるのですか?

4

1 に答える 1

6

を作成し、InjectionConstructorそれをに渡しますRegisterType():

var unityContainer = new UnityContainer();

ISnuh snuh = new Snuh();
InjectionConstructor injectionConstructor = new InjectionConstructor(snuh);

unityContainer.RegisterType<ICalculator, SimpleCalculator>(injectionConstructor);

タイプを解決するときにのみ実行する必要がある場合は、そのときResolverOverride[]に使用されます。

public static T Resolve<T>(this IUnityContainer container, params ResolverOverride[] overrides);

MSDNごと:

指定されたコンストラクター パラメーターをオーバーライドするには、ParameterOverride を使用します。

于 2012-12-04T23:35:13.743 に答える