Beispiel #1
0
        private void SetPropertyData(FieldInfo field, PropertyInfo propSource, object propObject)
        {
            var pType  = propSource.PropertyType;
            var pFlags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static;

            //if (pType == typeof(Unit))
            //{
            //    field.SetValue(this, ((Unit)propSource.GetValue(propObject, null)).ToString());
            //    return;
            //}

            if (pType.GetTypeInfo().IsEnum)
            {
                field.SetValue(this, (int)propSource.GetValue(propObject, null));
                return;
            }

            if (pType == typeof(Color))
            {
                var c = (Color)propSource.GetValue(propObject, null);
                field.SetValue(this, RadarUtils.GetHexStringFromColor(c));
                return;
            }

            if (pType == typeof(float))
            {
                field.SetValue(this, Convert.ToInt32(propSource.GetValue(propObject, null)));
                return;
            }


            field.SetValue(this, propSource.GetValue(propObject, null));
        }