Exemplo n.º 1
0
        public void InspectProperty(IComponentInfo ctx, IKernel kernel, PropertyInfo p)
        {
            var settingAttr = GetSettingAttribute(p);

            if (settingAttr != null && !string.IsNullOrEmpty(settingAttr.Name))
            {
                appSettingInjections.Add(CreatePropertyInjection(p, settingAttr));
                return;
            }

            var manyAttr = GetInjectManyAttribute(p);

            if (manyAttr != null)
            {
                injections.Add(CreatePropertyInjection(kernel, p, manyAttr));
                return;
            }

            var injectAttr = GetInjectAttribute(p);

            if (injectAttr != null)
            {
                injections.Add(CreatePropertyInjection(kernel, p, injectAttr));
                return;
            }

            //var componentAttr = p.GetAttribute<ComponentAttribute>(true);
            var componentAttr = componentAttributeVisitor.VisitProperty(p);

            if (componentAttr != null)
            {
                exports.Add(new PropertyExportInfo
                {
                    Id       = componentAttr != null ? componentAttr.Id : null,
                    Property = p,
                    Getter   = DynamicMethodFactory.GetGetter(p)
                });
                return;
            }
        }
Exemplo n.º 2
0
        public void InspectField(IComponentInfo ctx, IKernel kernel, FieldInfo f)
        {
            var settingAttr = GetSettingAttribute(f);

            if (settingAttr != null && !string.IsNullOrEmpty(settingAttr.Name))
            {
                appSettingInjections.Add(CreateFieldInjection(f, settingAttr));
                return;
            }

            var manyAttr = GetInjectManyAttribute(f);

            if (manyAttr != null)
            {
                injections.Add(CreateFieldInjection(kernel, f, manyAttr));
                return;
            }

            var injectAttr = GetInjectAttribute(f);

            if (injectAttr != null)
            {
                injections.Add(CreateFieldInjection(kernel, f, injectAttr));
                return;
            }

            //var componentAttr =  f.GetAttribute<ComponentAttribute>(true);
            var componentAttr = componentAttributeVisitor.VisitField(f);

            if (componentAttr != null)
            {
                exports.Add(new FieldExportInfo
                {
                    Id     = componentAttr != null ? componentAttr.Id : null,
                    Field  = f,
                    Getter = DynamicMethodFactory.GetGetter(f)
                });
                return;
            }
        }