Re[10]: как ресолвить не передавая ссылки на контейнер ( DI
От: okon  
Дата: 24.05.18 11:53
Оценка:
Здравствуйте, Sharov, Вы писали:

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


O>>после создания контейнера вызывается ресолв рута.

O>>Контейнер упоминается только в одном месте в методе CreateContainer и более он не требуется

O>>
O>>void CreateContainer()
O>>{

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

O>>     Root = container.Resolve<RootClass>(); 
O>>}

O>>


S>Он будет упоминаться в каждом классе, где как минимум требуется RootClass или еще чего. Т.е. опять же, его всюду придется инжектить, хотя бы через конструктор класса, там же, в конструкторе, получить от него

S>все необходимое и забыть про него.

Для RootClass не совсем я понял, например если нам нужен RootClass где-то внутри мы просто укажем его в конструкторе
Вот например, все разресолвится без передачи контейнера


public class RootClass
{


   RootClass( Foo foo)
   {

   }
}

public class MyClass
{
   public MyClass( RootClass root)   
   {
   }
}


public class Foo
{
    Foo( Func<MyClass> myClassFactory)
    {
    var myClass = myClassFactory();
    }
}
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 24.05.2018 11:55 okon . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.