/// <summary> /// Set a property based on the AutoCAD attribute name /// </summary> /// <param name="drawing"> </param> /// <param name="attribute"></param> /// <param name="value"></param> public static void SetAttribute(this Drawing drawing, string attribute, string value) { if (Attribs.ContainsKey(attribute)) { Type t = Attribs[attribute].PropertyType; object obj; if (t == typeof(string)) { obj = value; } else if (t == typeof(DrawingCategory)) { obj = new DrawingCategoryConverter().ConvertBack(value, typeof(DrawingCategory), null, null); } else if (t == typeof(DrawingStatus)) { obj = new DrawingStatusConverter().ConvertBack(value, typeof(DrawingStatus), null, null); } else if (t == typeof(DateTime?)) { DateTime time; if (DateTime.TryParse(value, out time)) { obj = time; } else { obj = null; } } else { obj = value; } Attribs[attribute].SetValue(drawing, obj, null); } else { throw new ArgumentException("No such property!"); } }
/// <summary> /// Set a property based on the AutoCAD attribute name /// </summary> /// <param name="drawing"> </param> /// <param name="attribute"></param> /// <param name="value"></param> public static void SetAttribute(this Drawing drawing, string attribute, string value) { if (Attribs.ContainsKey(attribute)) { Type t = Attribs[attribute].PropertyType; object obj; if (t == typeof(string)) obj = value; else if (t == typeof(DrawingCategory)) obj = new DrawingCategoryConverter().ConvertBack(value, typeof(DrawingCategory), null, null); else if (t == typeof(DrawingStatus)) obj = new DrawingStatusConverter().ConvertBack(value, typeof(DrawingStatus), null, null); else if (t == typeof(DateTime?)) { DateTime time; if (DateTime.TryParse(value, out time)) { obj = time; } else { obj = null; } } else obj = value; Attribs[attribute].SetValue(drawing, obj, null); } else { throw new ArgumentException("No such property!"); } }