class Top
{
public Top( Foo foo, IUnityContainer container )
{
some = CreateSome(localRuntimeVariable);
Child = container.Resolve<Child>(new ParameterOverride("some" some),
new ParameterOverride("Foo", foo));
}
public Child Child {get;private set;}
}
class Child
{
public Child(ISome some, Foo foo)
{
}
}
Теперь вы можете разрешить экземпляр top, используя unity.Resolve<Top>(new ParameterOverride("Foo", foo))
Класс Usage
не нужен.GetTop(Foo foo)
это просто синтаксический сахар для unity.Resolve<Top>(new DependencyOverride<Foo>(foo))