Я пытаюсь разрешить пользователям моей библиотеки, которая внутренне подключена через tinyioc, передать свою собственную реализацию интерфейса, определенного в моей библиотеке, который затем будет разрешен всякий раз, когда экземпляр необходим.Экземпляр реестра 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
...
}
}
}
Однако, я не могу» t найти способ TinyIoc позволит мне сделать это. Поддерживается ли это? Я знаю, что TinyIoc поддерживает регистрацию экземпляров типов, о которых он знает, но не если тип неизвестен.