public object Get(IContextual contextual, ICreationalContext creationalContext) { if (!IsActive) { throw new ContextNotActiveException(Scope); } var store = ComponentStore; if (store == null) { return(null); } if (contextual == null) { throw new ArgumentNullException("contextual"); } var contextualStore = Container.Instance.ContextualStore; var id = contextualStore.PutIfAbsent(contextual); var instance = store.GetOrPut(id, _ => { var i = contextual.Create(creationalContext); return(new SerializableContextualInstance(contextual, i, creationalContext, contextualStore)); }); if (instance != null) { return(instance.Instance); } return(null); }
public object Get(IContextual contextual, ICreationalContext creationalContext) { if (!IsActive) { throw new ContextNotActiveException(Scope); } if (creationalContext != null) { var instance = contextual.Create(creationalContext); var weldContext = creationalContext as IWeldCreationalContext; if (weldContext != null) { AddDependentInstance(instance, contextual, weldContext); } return(instance); } return(null); }