void Start() { if (boundObjects == null) { boundObjects = GameObject.Find("Icons") .GetComponent <BoundObjects>(); } }
/// <summary> /// Dissolves and removes any bound objects. /// </summary> public void Dissolve() { if (BoundObjects != null) { for (int i = BoundObjects.Count - 1; i >= 0; i--) { IDisposable disposable = BoundObjects[i] as IDisposable; if (disposable != null) { disposable.Dispose(); } BoundObjects[i] = null; BoundObjects.RemoveAt(i); } } }
private object InternalResolve(IInjectContext injectContext) { object instance; BoundObjects = BoundObjects ?? new List <object>(); switch (BindingType) { case BindingType.Singleton: if (BoundObjects.Count == 0) { instance = ResolveNew(injectContext); BoundObjects.Add(instance); Container.Injector.Inject(instance, injectContext); Resolved?.Invoke(true, this, null); } else { instance = BoundObjects.FirstOrDefault(); Resolved?.Invoke(false, this, null); } break; case BindingType.Transient: instance = ResolveNew(injectContext); Container.Injector.Inject(instance, injectContext); Resolved?.Invoke(true, this, null); break; default: throw new InvalidOperationException(); } return(instance); }