Пример #1
0
 private static void SetPropertyValue <T>(Tiled.PropertiesDictionary properties, T value, [CallerMemberName] string key = null)
     where T : class
 {
     if (properties != null)
     {
         properties[key] = value;
     }
 }
Пример #2
0
        private static object GetPropertyValue(Tiled.PropertiesDictionary properties, Type type, object defaultValue, [CallerMemberName] string key = null)
        {
            object result;

            if (properties != null && properties.TryGetValue(key, out object value))
            {
                if (type == value.GetType())
                {
                    return(value);
                }
                try
                {
                    bool isNumeric = IsNumeric(value);
                    if (type.IsEnum)
                    {
                        if (!isNumeric)
                        {
                            foreach (var enumValues in type.GetEnumValues())
                            {
                                if (value.ToString().Equals(enumValues.ToString(), StringComparison.OrdinalIgnoreCase))
                                {
                                    return(enumValues);
                                }
                            }
                            return(int.TryParse(value.ToString(), out int r) ? r : defaultValue);
                        }
                        return(Convert.ToInt32(value));
                    }
                    //result = (T)Convert.ChangeType(value, type, null);
                    result = TypeDescriptor.GetConverter(type).ConvertFromInvariantString(value.ToString());
                }
                catch
                {
                    result = defaultValue;
                }
            }
            else
            {
                result = defaultValue;
            }
            return(result);
        }
Пример #3
0
 private static T GetPropertyValue <T>(Tiled.PropertiesDictionary properties, T defaultValue = default(T), [CallerMemberName] string key = null)
 {
     return((T)GetPropertyValue(properties, typeof(T), defaultValue, key));
 }