Esempio n. 1
0
        private void mapSetters(IReflectedClass reflected, IBinding binding, Type type)
        {
            KeyValuePair <Type, MemberInfoWrapper>[] pairs = new KeyValuePair <Type, MemberInfoWrapper> [0];
            object[] names = new object[0];

            MemberInfo[] members = type.FindMembers(MemberTypes.Property | MemberTypes.Field,
                                                    BindingFlags.FlattenHierarchy |
                                                    BindingFlags.SetProperty |
                                                    BindingFlags.SetField |
                                                    BindingFlags.Public |
                                                    BindingFlags.NonPublic |
                                                    BindingFlags.Instance,
                                                    null, null);

            foreach (MemberInfo member in members)
            {
                object[] injections = member.GetCustomAttributes(typeof(Inject), true);
                if (injections.Length > 0)
                {
                    Inject            attr  = injections [0] as Inject;
                    MemberInfoWrapper point = new MemberInfoWrapper(member);
                    Type pointType          = point.Type;
                    KeyValuePair <Type, MemberInfoWrapper> pair = new KeyValuePair <Type, MemberInfoWrapper> (pointType, point);
                    pairs = AddKV(pair, pairs);

                    object bindingName = attr.name;
                    names = Add(bindingName, names);
                }
            }
            reflected.Setters     = pairs;
            reflected.SetterNames = names;
        }
Esempio n. 2
0
        //Inject the value into the target at the specified injection point
        private void injectValueIntoPoint(object value, object target, MemberInfoWrapper point)
        {
            failIf(target == null, "Attempt to inject into a null target", InjectionExceptionType.NULL_TARGET);
            failIf(point == null, "Attempt to inject into a null point", InjectionExceptionType.NULL_INJECTION_POINT);
            failIf(value == null, "Attempt to inject null into a target object", InjectionExceptionType.NULL_VALUE_INJECTION);

            point.SetValue(target, value);
        }
Esempio n. 3
0
 protected MemberWriter(GenerationManifest artifacts, FrameworkVersion version, MemberInfoWrapper info)
     : base(artifacts, version)
 {
     this._info = info;
 }
Esempio n. 4
0
 protected MemberWriter(GenerationManifest artifacts, FrameworkVersion version, MemberInfoWrapper info)
     : base(artifacts, version)
 {
     this._info = info;
 }