Example #1
0
        void CreateProperty <TContainer, TValue>(IMemberInfo member, ReflectedPropertyBag <TContainer> propertyBag)
        {
            if (typeof(TValue).IsPointer)
            {
                return;
            }

            var arrayProperty = ReflectedPropertyBagUtils.TryCreateUnityObjectArrayProperty <TContainer, TValue>(member);

            if (arrayProperty != null)
            {
                propertyBag.AddProperty(arrayProperty);
                return;
            }

            var listProperty = ReflectedPropertyBagUtils.TryCreateUnityObjectListProperty <TContainer, TValue>(member);

            if (listProperty != null)
            {
                propertyBag.AddProperty(listProperty);
                return;
            }

            var property = ReflectedPropertyBagUtils.TryCreateUnityObjectProperty <TContainer>(member);

            if (property != null)
            {
                propertyBag.AddProperty(property);
                return;
            }

            propertyBag.AddProperty(new ReflectedMemberProperty <TContainer, TValue>(member, member.Name));
        }