Мне нужно создать экземпляр класса с некоторыми параметрами без регистрации его в контейнере , так как мне часто нужно получить некоторые классы с зависимостями, введенными без их загромождения в контейнере.
Вот пример:
interface IPrinter
{
void Print(string text);
}
class ConsolePrinter : IPrinter
{
public void Print(string text) => Console.WriteLine(text);
}
class Thing
{
public Thing(IPrinter print, string otherParameter)
{
// ...
}
}
class Program
{
static void Main(string[] args)
{
var container = new Container();
container.Register<IPrinter, ConsolePrinter>();
// This throws.
container.Resolve<Thing>(args: new object[] { "something something" });
}
}
Я получаю исключение: DryIoc.ContainerException: 'code: UnableToResolveUnknownService
, что имеет смысл.
Я точно могу сделать container.Register<Thing>()
, но, как уже было сказано, добавил бы нежелательный сервис в мой контейнер.