ArenaNet.Sprout.IoC.ComponentInjectionProvider.ResolveInject C# (CSharp) Method

ResolveInject() public method

Resolves an injection to a Component.
public ResolveInject ( Context context, ComponentDescriptor componentDescriptor, InjectDescriptor injectDescriptor ) : object
context Context
componentDescriptor ComponentDescriptor
injectDescriptor InjectDescriptor
return object
        public object ResolveInject(Context context, ComponentDescriptor componentDescriptor, InjectDescriptor injectDescriptor)
        {
            ComponentDescriptor injectComponent = null;

            if (injectDescriptor.Attributes.Name != null)
            {
                context.descriptorNameCache.TryGetValue(injectDescriptor.Attributes.Name, out injectComponent);
            }

            if (injectDescriptor.Attributes.Type != null)
            {
                if (injectComponent == null)
                {
                    context.descriptorTypeCache.TryGetValue(injectDescriptor.Attributes.Type.AssemblyQualifiedName, out injectComponent);
                }
                else
                {
                    if (injectComponent.Type != injectDescriptor.Attributes.Type)
                    {
                        injectComponent = null;
                    }
                }
            }
            else
            {
                context.descriptorTypeCache.TryGetValue(injectDescriptor.Type.AssemblyQualifiedName, out injectComponent);
            }

            return injectComponent == null ? null : context.GetInstance(injectComponent);
        }
ComponentInjectionProvider