/// <summary>
        /// The current OLM container
        /// </summary>
        /// <param name="context"></param>
        private static IContainer GetContainer(ContextProviders.IScopeContext context)
        {
            if (ContainerSingleton.IsInstance())
            {
                return(new ScopedContainer(ContainerSingleton, context));
            }
            lock (LockObject)
            {
                var container = new AdvancedActivator <IContainer>().CreateInstance(typeof(Container));
                if (ContainerSingleton != null)
                {
                    return(ContainerSingleton);
                }
                ContainerSingleton = container;
            }

            return(new ScopedContainer(ContainerSingleton, context));
        }
Exemplo n.º 2
0
 private ScopeContext(ContextProviders.IScopeContext activationScopeContext)
 {
     ActivationScopeContext = activationScopeContext;
     IsNull = true;
 }
Exemplo n.º 3
0
 internal ScopeContext(Func <IDependencyResolver, object> creatorMethod, ContextProviders.IScopeContext activationScopeContext)
 {
     CreatorMethod          = creatorMethod;
     ActivationScopeContext = activationScopeContext;
     BoundType = creatorMethod(activationScopeContext.Resolver).GetType();
 }
Exemplo n.º 4
0
 internal ScopeContext(Type boundType, ContextProviders.IScopeContext activationScopeContext, string implementationKey = null)
 {
     BoundType = boundType;
     ActivationScopeContext = activationScopeContext;
     ImplementationKey      = implementationKey;
 }
 public ScopedContainer(IContainer containerSingleton, ContextProviders.IScopeContext context)
 {
     _containerSingleton = containerSingleton;
     _context            = context;
 }
 /// <summary>
 /// The current OLM container
 /// </summary>
 public static IContainer Current(ContextProviders.IScopeContext context)
 {
     return(GetContainer(context));
 }
Exemplo n.º 7
0
 public InternalScopeContext(IScopeContextInternal typeContext, ContextProviders.IScopeContext scopeContext)
 {
     _typeContext           = typeContext;
     ActivationScopeContext = scopeContext;
 }
Exemplo n.º 8
0
 internal ResolveContext(IScopeContextInternal typeContext, ContextProviders.IScopeContext scopeContext)
 {
     Context     = scopeContext;
     TypeContext = new Internals.InternalScopeContext(typeContext, scopeContext);
 }
Exemplo n.º 9
0
 public static IScopeContextInternal ConvertToContext(this Type type, ContextProviders.IScopeContext context)
 {
     return(new ScopeContext(type, context));
 }