Re[6]: как ресолвить не передавая ссылки на контейнер ( DI )
От: okon  
Дата: 23.05.18 10:51
Оценка: +1
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, okon, Вы писали:


O>>Подразумевается что Resolve делается один раз для корневого объекта, а остальные зависимости сидят в конструкторах и вычисляются автоматом.


S>А почему я не могу для разных объектов,т.е. типов, делать Resolve? Для типа по контейнеру?


Основная идея я так понимаю делать это все при настройке контейнера, в том числе если что-то надо ресолвить когда-то потом, создается функция как-то так


void RegisterTypesInContainer()
{

    ...
    container.Register<Func<MyClass>>( ()=> container.Resolve<MyClass>() );

    ...
}



и потом где-то в коде вместо того чтобы делать container.Resolve()



public class Foo
{
    Foo( Func<MyClass> myClassFactory )
    {
       MyClass instance = myClassFactory();
    }
}



вместо Func<MyClass>() можно делать какие-нибудь IMyClassFactory
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.