public static ObjectDrawer GetObjectDrawer(Task task, ObjectDrawerAttribute attribute) { ObjectDrawer objectDrawer = null; Type type = null; if (!ObjectDrawerUtility.ObjectDrawerForType(attribute.GetType(), ref objectDrawer, ref type, attribute.GetHashCode())) { return(null); } if (objectDrawer != null) { return(objectDrawer); } objectDrawer = (Activator.CreateInstance(type) as ObjectDrawer); objectDrawer.Attribute = attribute; objectDrawer.Task = task; ObjectDrawerUtility.objectDrawerMap.Add(attribute.GetHashCode(), objectDrawer); return(objectDrawer); }
public static ObjectDrawer GetObjectDrawer(Task task, FieldInfo field) { ObjectDrawer objectDrawer = null; Type type = null; if (!ObjectDrawerUtility.ObjectDrawerForType(field.FieldType, ref objectDrawer, ref type, field.GetHashCode())) { return(null); } if (objectDrawer != null) { return(objectDrawer); } objectDrawer = (Activator.CreateInstance(type) as ObjectDrawer); objectDrawer.FieldInfo = field; objectDrawer.Task = task; ObjectDrawerUtility.objectDrawerMap.Add(field.GetHashCode(), objectDrawer); return(objectDrawer); }