public override object Resolve(CreationContext context, IReleasePolicy releasePolicy) { // 1. read from cache if (cachedBurden != null) { return(cachedBurden.Instance); } var instanceFromContext = context.GetContextualProperty(ComponentActivator); if (instanceFromContext != null) { //we've been called recursively, by some dependency from base.Resolve call return(instanceFromContext); } var initializing = false; try { initializing = init.ExecuteThreadSafeOnce(); if (cachedBurden != null) { return(cachedBurden.Instance); } var burden = CreateInstance(context, true); cachedBurden = burden; Track(burden, releasePolicy); return(burden.Instance); } finally { if (initializing) { init.EndThreadSafeOnceSection(); } } }
public object GetContextInstance(CreationContext context) { return(context.GetContextualProperty(ComponentActivator)); }
public object GetContextInstance(CreationContext context) { return(context.GetContextualProperty(DefaultComponentActivator.InstanceStash)); }