//[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object NewInstance(InjectionContext context)
 {
     object instance = this.constructorsModel.NewInstance(context);
     this.injectedFieldsModel.Inject(context, instance);
     this.injectedMethodsModel.Inject(context, instance);
     return instance;
 }
Beispiel #2
0
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public object NewInstance(CompositeInstance compositeInstance, StateHolder stateHolder, UsesInstance uses)
        {
            var    injectionContext = new InjectionContext(compositeInstance, uses, stateHolder);
            object mixin            = this.injectedObjectBuilder.NewInstance(injectionContext);

            return(mixin);
        }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public void Inject(InjectionContext context, object instance)
 {
     foreach (InjectedFieldModel field in this.fields)
     {
         field.Inject(context, instance);
     }
 }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public void Inject(InjectionContext context, object instance)
 {
     foreach (InjectedFieldModel field in this.fields)
     {
         field.Inject(context, instance);
     }
 }
Beispiel #5
0
        // Context
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public object NewInstance(ModuleInstance moduleInstance, object next, ProxyReferenceInvocationHandler proxyHandler)
        {
            var    injectionContext = new InjectionContext(moduleInstance, this.WrapNext(next), proxyHandler);
            object mixin            = this.injectedObjectBuilder.NewInstance(injectionContext);

            return(mixin);
        }
Beispiel #6
0
 public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
 {
     if (fieldType == typeof(object))
     {
         return(context.CompositeInstance.Proxy);
     }
     return(context.CompositeInstance.NewProxy(fieldType));
 }
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public object NewInstance(InjectionContext context)
        {
            object instance = this.constructorsModel.NewInstance(context);

            this.injectedFieldsModel.Inject(context, instance);
            this.injectedMethodsModel.Inject(context, instance);
            return(instance);
        }
 public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
 {
     if (fieldType == typeof(object))
     {
         return context.CompositeInstance.Proxy;
     }
     return context.CompositeInstance.NewProxy(fieldType);
 }
Beispiel #9
0
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            if (typeof(StateHolder).IsAssignableFrom(fieldType))
            {
                return(context.State);
            }

            return(null);
        }
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            if (typeof(StateHolder).IsAssignableFrom(fieldType))
            {
                return context.State;
            }

            return null;
        }
Beispiel #11
0
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object NewInstance(InjectionContext injectionContext)
 {
     return Activator.CreateInstance(this.type, null);
     //foreach(var constructor in constructors)
     //{
     //    try
     //    {
     //        constructor.Invoke()
     //    }
     //}
 }
Beispiel #12
0
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object NewInstance(InjectionContext injectionContext)
 {
     return(Activator.CreateInstance(this.type, null));
     //foreach(var constructor in constructors)
     //{
     //    try
     //    {
     //        constructor.Invoke()
     //    }
     //}
 }
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            if (fieldType == typeof(TransientBuilderFactory))
            {
                return context.ModuleInstance.TransientBuilderFactory;
            }
            if (fieldType == typeof(ObjectBuilderFactory))
            {
                return context.ModuleInstance.ObjectBuilderFactory;
            }
            if (fieldType == typeof(ValueBuilderFactory))
            {
                return context.ModuleInstance.ValueBuilderFactory;
            }
            if (fieldType == typeof(UnitOfWorkFactory))
            {
                return context.ModuleInstance.UnitOfWorkFactory;
            }
            if (fieldType == typeof(ServiceFinder))
            {
                return context.ModuleInstance.ServiceFinder;
            }
            if (fieldType == typeof(ModuleInstance))
            {
                return context.ModuleInstance;
            }
            if (fieldType == typeof(Layer))
            {
                return context.ModuleInstance.LayerInstance;
            }
            if (fieldType == typeof(Application))
            {
                return context.ModuleInstance.LayerInstance.ApplicationInstance;
            }
            //else if( typeof( Qi4j) ) || typeof( Qi4jSPI) )
            //{
            //    return context.ModuleInstance.layerInstance().applicationInstance().runtime();
            //}

            return null;
        }
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            if (fieldType == typeof(TransientBuilderFactory))
            {
                return(context.ModuleInstance.TransientBuilderFactory);
            }
            if (fieldType == typeof(ObjectBuilderFactory))
            {
                return(context.ModuleInstance.ObjectBuilderFactory);
            }
            if (fieldType == typeof(ValueBuilderFactory))
            {
                return(context.ModuleInstance.ValueBuilderFactory);
            }
            if (fieldType == typeof(UnitOfWorkFactory))
            {
                return(context.ModuleInstance.UnitOfWorkFactory);
            }
            if (fieldType == typeof(ServiceFinder))
            {
                return(context.ModuleInstance.ServiceFinder);
            }
            if (fieldType == typeof(ModuleInstance))
            {
                return(context.ModuleInstance);
            }
            if (fieldType == typeof(Layer))
            {
                return(context.ModuleInstance.LayerInstance);
            }
            if (fieldType == typeof(Application))
            {
                return(context.ModuleInstance.LayerInstance.ApplicationInstance);
            }
            //else if( typeof( Qi4j) ) || typeof( Qi4jSPI) )
            //{
            //    return context.ModuleInstance.layerInstance().applicationInstance().runtime();
            //}

            return(null);
        }
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            object obj = context.Uses.UseForType(fieldType);

            if (obj != null)
            {
                return obj;
            }

            ModuleInstance moduleInstance = context.ModuleInstance;

            TransientFinder compositeFinder = moduleInstance.FindCompositeModel(fieldType);
            if (compositeFinder.Model != null)
            {
                CompositeInstance compositeInstance = compositeFinder.Model.NewCompositeInstance(moduleInstance, context.Uses, context.State);
                context.Uses.Use(compositeInstance);
                return compositeInstance.Proxy;
            }

            return null;
        }
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            object obj = context.Uses.UseForType(fieldType);

            if (obj != null)
            {
                return(obj);
            }

            ModuleInstance moduleInstance = context.ModuleInstance;

            TransientFinder compositeFinder = moduleInstance.FindCompositeModel(fieldType);

            if (compositeFinder.Model != null)
            {
                CompositeInstance compositeInstance = compositeFinder.Model.NewCompositeInstance(moduleInstance, context.Uses, context.State);
                context.Uses.Use(compositeInstance);
                return(compositeInstance.Proxy);
            }

            return(null);
        }
Beispiel #17
0
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object NewInstance(CompositeInstance compositeInstance, StateHolder stateHolder, UsesInstance uses)
 {
     var injectionContext = new InjectionContext(compositeInstance, uses, stateHolder);
     object mixin = this.injectedObjectBuilder.NewInstance(injectionContext);
     return mixin;
 }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
 {
     return(context.Next);
 }
Beispiel #19
0
 public object Inject(InjectionContext context)
 {
     throw new NotImplementedException();
 }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
 {
     return context.Next;
 }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public void Inject(InjectionContext context, object mixin)
 {
     //      throw new NotImplementedException();
 }
Beispiel #22
0
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public void Inject(InjectionContext context, object instance)
        {
            object value = this.injectionProvider.ProvideInjection(context, this.injectionAttribute, this.injectedField.FieldType);

            this.injectedField.SetValue(instance, value);
        }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public void Inject(InjectionContext context, object mixin)
 {
     //      throw new NotImplementedException();
 }
 public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
 {
     ServiceReference service = context.ModuleInstance.ServiceFinder.FindService(fieldType);
     return service;
 }
        public object ProvideInjection(InjectionContext context, InjectionAttribute attribute, Type fieldType)
        {
            ServiceReference service = context.ModuleInstance.ServiceFinder.FindService(fieldType);

            return(service);
        }
 // Context
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public object NewInstance(ModuleInstance moduleInstance, object next, ProxyReferenceInvocationHandler proxyHandler)
 {
     var injectionContext = new InjectionContext(moduleInstance, this.WrapNext(next), proxyHandler);
     object mixin = this.injectedObjectBuilder.NewInstance(injectionContext);
     return mixin;
 }
Beispiel #27
0
 public object Inject(InjectionContext context)
 {
     throw new NotImplementedException();
 }
Beispiel #28
0
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public void Inject(InjectionContext context, object instance)
 {
     object value = this.injectionProvider.ProvideInjection(context, this.injectionAttribute, this.injectedField.FieldType);
     this.injectedField.SetValue(instance, value);
 }