Сообщение Re[10]: как ресолвить не передавая ссылки на контейнер ( DI от 24.05.2018 11:53
Изменено 24.05.2018 11:55 okon
Re[10]: как ресолвить не передавая ссылки на контейнер ( DI )
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, okon, Вы писали:
O>>после создания контейнера вызывается ресолв рута.
O>>Контейнер упоминается только в одном месте в методе CreateContainer и более он не требуется
O>>
S>Он будет упоминаться в каждом классе, где как минимум требуется RootClass или еще чего. Т.е. опять же, его всюду придется инжектить, хотя бы через конструктор класса, там же, в конструкторе, получить от него
S>все необходимое и забыть про него.
Для RootClass не совсем я понял, например если нам нужен RootClass где-то внутри мы просто укажем его в конструкторе
Вот например, все разресолвится без передачи контейнера
[c#]
public class RootClass
{
RootClass( Foo foo)
{
}
}
public class MyClass
{
public MyClass( RootClass root)
{
}
}
public class Foo
{
Foo( Func<MyClass> myClassFactory)
{
var myClass = myClassFactory();
}
}
[c#]
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 где-то внутри мы просто укажем его в конструкторе
Вот например, все разресолвится без передачи контейнера
[c#]
public class RootClass
{
RootClass( Foo foo)
{
}
}
public class MyClass
{
public MyClass( RootClass root)
{
}
}
public class Foo
{
Foo( Func<MyClass> myClassFactory)
{
var myClass = myClassFactory();
}
}
[c#]
Re[10]: как ресолвить не передавая ссылки на контейнер ( DI
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, okon, Вы писали:
O>>после создания контейнера вызывается ресолв рута.
O>>Контейнер упоминается только в одном месте в методе CreateContainer и более он не требуется
O>>
S>Он будет упоминаться в каждом классе, где как минимум требуется RootClass или еще чего. Т.е. опять же, его всюду придется инжектить, хотя бы через конструктор класса, там же, в конструкторе, получить от него
S>все необходимое и забыть про него.
Для RootClass не совсем я понял, например если нам нужен RootClass где-то внутри мы просто укажем его в конструкторе
Вот например, все разресолвится без передачи контейнера
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();
}
}