問題:
クラスを想定します。
public class MyAwesomeClass
{
private IDependCls _dependCls;
public MyAwesomeClass(IDependCls dependCls)
{
_dependCls = dependCls;
}
}
そして、別の場所で、次のようにそのクラスのインスタンスを取得する必要があります。
public class SomewhereElse
{
public void AwesomeMethod()
{
//...
// AwesomeStuff
//...
var GetErDone = new MyAwesomeClass(); // PROBLEM! No constructor with 0 arguements
}
}
質問は、私ですか
提案された解決策 1:
A) 依存関係を解決する追加のコンストラクターを作成する必要がありますか? 例えば:
public MyAwesomeClass() // new constructor
{
_dependCls = DependencyResolver.Current.GetService<IDependCls>();
}
public class SomewhereElse
{
public void AwesomeMethod()
{
var GetErDone = new MyAwesomeClass(); // IT WORKS!!
}
}
提案された解決策 2:
AwesomeMethod
B)直前に 内部でリゾルバーを使用するvar GetErDone
public class SomewhereElse
{
public void AwesomeMethod()
{
var depCls = _dependCls = DependencyResolver.Current.GetService<IDependCls>();
var GetErDone = new MyAwesomeClass(depCls); // IT WORKS!!
}
}
Autofac ソリューション?
C) 他の Autofac の方法はありますか?
ベスト プラクティスと、可能であれば優れた Autofac ソリューションを探しています。オプションの依存関係が多くの混乱につながる可能性があるため、最初の方法は最悪だと思います。
概要:
依存関係があるnew MyAwesomeClass()
ときを取得するにはどうすればよいですか?MyAwesomeClass