tinyioc を介して内部的に接続されているライブラリのユーザーが、ライブラリ内で定義されたインターフェイスの独自の実装を渡せるようにしようとしています。これは、インスタンスが必要になるたびに解決されます。
たとえば、ユーザーは次の操作を実行できます。
public class Logger : Things.ILogger
{
// Implement members
public void Log(string s)
{
...
}
}
var thing = new Things.ThingBuilder().WithLogger(new Logger()).Build();
ライブラリ内で、渡されたロガーを配線したいと思います。次のようなものです。
namespace Things
{
public class ThingBuilder()
{
private ILogger logger;
public ThingBuilder WithLogger(ILogger logger)
{
this.logger = logger;
return this;
}
public Thing Build()
{
TinyIocContainer container = new TinyIocContainer();
container.Register(ILogger, logger); // I want this to be used
// wherever an ILogger is needed
...
}
}
}
しかし、TinyIoc でこれを行う方法が見つかりません。これはサポートされていますか? TinyIoc が認識しているタイプのインスタンスの登録をサポートしていることは知っていますが、タイプが不明な場合はそうではありません。