その例が言っていることは、コンテナがMyType
リクエストごとに のインスタンスを作成するということです。のインスタンスを作成するとMyType
、依存関係IDependency
がパラメータとして のコンストラクタに渡されMyType
、connectionString
.
ただし、コード例には入力パラメーターc
が必要です。
container.Register(c => new MyType(c.Resolve<IDependency>(), connectionString));
の使い方はconnectionString
あなた次第です。のオブジェクトで好きなように使用できますMyType
。アクセスできるように、パブリック プロパティとして公開することもできます。またはあなたと一緒にそれを使用してくださいIDependency
。拡張された例として:
public class MyType
{
private IDependency _someDependency;
public string ConnectionString { get; private set }
public MyType(IDependency dependency, string connectionString)
{
_someDependency = dependency.SetConnectionString(connectionString); // Assumes this method exists.
ConnectionString = connectionString;
}
}
あなたのサービスでは、が自動配線されているときMyType
に、オブジェクトにアクセスできるようになりました。
public class MyService : Service
{
public MyType MyType { get; set; }
public void Get(SomeRequest request)
{
string connectionString = MyType.ConnectionString;
}
}
他の場所で解決したい場合MyType
は、使用できます
MyType myType = HostContext.Container.Resolve<MyType>();
string connectionString = myType.ConnectionString;
connectionString
これで、オブジェクト コンストラクターに が渡されるだけで、必要に応じて自由に使用できることが明らかになることを願っています。