public class Job1:IJob
{
public Job(MyService service)
{
}
}
public class Job2:IJob
{
public Job(MyService service,int hours)
{
}
}
public static IUnityContainer ConfigureUnityContainer()
{
UnityContainer container = new UnityContainer();
container.RegisterType<MyService, MyService>();
container.RegisterType<IJob, Job1>("Job1");
container.RegisterType<IJob, Job2>("Job2", new InjectionConstructor(Convert.ToInt32(ConfigurationManager.AppSettings["Hours"])));
return container;
}
構成や、既に登録済みのインスタンスを注入する方法。上記のコンストラクタの実装を参照してください。ユニティ:私は<code>IJob</code>インターフェースに由来する2つのclases <code>Job1</code>と<code>Job2</code>を持って
Job2
コンストラクタは2つのパラメータをとります。 2番目のパラメータの値はconfigファイルから来ています。 Job2
を登録している間、その値を渡しています。 しかし、最初のパラメータMyService
の場合、Unityは自動的にMyService
インスタンスをコンストラクタに渡します。しかし、実行時にエラーが発生する
MyNameSpace.Job2には、パラメータ (Int32)を使用するコンストラクタがありません。
Unityは最初のパラメータを追加します。Job1
に
私は、これは基礎の問題だと思います。ドキュメントを確認する必要があります - > https://msdn.microsoft.com/en-us/library/ff648449.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1 – Cabrra