3

私は次のようなタイプを登録しています:

IUnityContainer container = new UnityContainer()
                .RegisterType<IActiveDirectoryUser, ADUser>();

クラス ADUser には、パラメーターなしのコンストラクターと単一パラメーターを持つコンストラクターの 2 つのコンストラクターが含まれています。リゾルバがそれを解決しようとすると、パラメータを持つものを選択します。パラメーターなしのコントラスターを使用するように指示するにはどうすればよいですか?

4

2 に答える 2

10

型を登録するときは、InjectionConstructorパラメーターなしのコンストラクターを使用する必要があることを Unity に指示するために使用します。

IUnityContainer container = new UnityContainer();
container.RegisterType<IActiveDirectoryUser, ADUser>(new InjectionConstructor());

コンストラクターに型を渡さないため、Unity はクラスInjectionConstructorをインスタンス化するときにパラメーターなしのコンストラクターを使用することを認識します。ADUser

于 2012-08-08T19:01:01.960 に答える
1

で必要なコンストラクターに注釈を付けます[InjectionConstructor]

于 2012-08-08T18:52:02.050 に答える