public ArgumentsBinder FromSiblingComponent() { BindingUtil.AssertIsComponent(ConcreteTypes); BindingUtil.AssertTypesAreNotAbstract(ConcreteTypes); SubFinalizer = new SingleProviderBindingFinalizer( BindInfo, (container, type) => new AddToCurrentGameObjectComponentProvider( container, type, BindInfo.ConcreteIdentifier, BindInfo.Arguments)); return(new ArgumentsBinder(BindInfo)); }
// AsSingle / AsCached / etc. don't make sense in this case so just return ConditionBinder public ConditionBinder ToMethod(ModestTree.Util.Action <TParam1, TParam2, TParam3, TParam4, TParam5> action) { // Create the command class once and re-use it everywhere Finalizer = new SingleProviderBindingFinalizer( BindInfo, new CachedProvider( new TransientProvider( typeof(TCommand), Container, InjectUtil.CreateArgListExplicit(action), null))); return(new ConditionBinder(BindInfo)); }
// AsSingle / AsCached / etc. don't make sense in this case so just return ConditionBinder public ConditionBinder ToMethod(Action action) { // Create the command class once and re-use it everywhere Finalizer = new SingleProviderBindingFinalizer( BindInfo, (container, _) => new CachedProvider( new TransientProvider( typeof(TCommand), container, InjectUtil.CreateArgListExplicit(action), null, BindInfo.ContextInfo))); return(new ConditionBinder(BindInfo)); }
public ScopeConcreteIdArgConditionCopyNonLazyBinder FromNewComponentSibling() { BindingUtil.AssertIsComponent(ConcreteTypes); BindingUtil.AssertTypesAreNotAbstract(ConcreteTypes); BindInfo.RequireExplicitScope = true; SubFinalizer = new SingleProviderBindingFinalizer( BindInfo, (container, type) => new AddToCurrentGameObjectComponentProvider( container, type, BindInfo.Arguments, BindInfo.ConcreteIdentifier, BindInfo.InstantiatedCallback)); return(new ScopeConcreteIdArgConditionCopyNonLazyBinder(BindInfo)); }