Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, okon, Вы писали:
O>>и потом где-то в коде вместо того чтобы делать container.Resolve()
O>>
O>>public class Foo
O>>{
O>> Foo( Func<MyClass> myClassFactory )
O>> {
O>> MyClass instance = myClassFactory();
O>> }
O>>}
O>>
S>А фабрика-то откуда взялась? Ее же тоже надо resolve'вить. К тому же, мы можем настроить контейнер при создании(resolve)типа использовать фабрику. Т.е. от ссылки на контейнер с последующим resolve мы не ушли.
Она разресолвится автоматом, я же в примере ее зарегистрировал там где региструется все, Foo будет где-то в иерархии и он разресолвится автоматом.
Например самая простая иерархия
public class RootClass
{
public RootClass( Foo foo )
{
...
}
}
после создания контейнера вызывается ресолв рута.
Контейнер упоминается только в одном месте в методе CreateContainer и более он не требуется
void CreateContainer()
{
container.Register<Func<MyClass>>( () => container.Resolve<MyClass>());
Root = container.Resolve<RootClass>();
}
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов