Ejemplo n.º 1
0
 private void AssignValue(object target, MemberInfo member, object value, WorkingMemberType mType)
 {
     if (mType == WorkingMemberType.property)
     {
         (member as PropertyInfo).SetValue(target, value);
     }
     else if (mType == WorkingMemberType.field)
     {
         (member as FieldInfo).SetValue(target, value);
     }
 }
Ejemplo n.º 2
0
        private void FillPropertyOrField(object target, MemberInfo member, Type ObjectType, WorkingMemberType mType)
        {
            var key = (target.GetType(), member);

            if (config != null && config.SettingsDict.ContainsKey(key))
            {
                object SubObject = InvokeConfigGeneration(key);
                AssignValue(target, member, SubObject, mType);
                return;
            }

            if (isDTO(ObjectType))
            {
                object SubObject = null;
                if (dodger.CanRecurse(ObjectType))
                {
                    SubObject = CreateByType(ObjectType);
                }

                AssignValue(target, member, SubObject, mType);
                return;
            }

            if (isGenericList(ObjectType))
            {
                var ListObject = new ListGenerator(this, ObjectType).Generate();
                AssignValue(target, member, ListObject, mType);
                return;
            }

            if (generators.ContainsKey(ObjectType))
            {
                object value = generators[ObjectType].Generate();
                AssignValue(target, member, value, mType);
            }
            else
            {
                AssignValue(target, member, null, mType);
            }
        }