/// <summary> /// Convert anymous objects into AnonymousObjectCollection /// </summary> /// <param name="data">Objects</param> /// <returns>reutrn AnonymousObjectCollection with AnonymousObjects</returns> private static AnonymousObjectCollection TurnObjectIntoAnonymousObjectCollection(object data) { const BindingFlags attr = BindingFlags.Public | BindingFlags.Instance; var dict = new AnonymousObjectCollection(); PropertyInfo[] prop = data.GetType().GetProperties(attr); if (prop != null) { foreach (var property in prop) { if (property.CanRead) { AnonymousObject CreateObject = new AnonymousObject(); CreateObject.KeyName = property.Name; CreateObject.SetValue(property.GetValue(data, null)); dict.Add(CreateObject); } } } else { throw (new ArgumentNullException("AnonymousObjectCollection", "no propertys for " + attr)); } return(dict); }
/// <summary> /// Add AnoymousObject to collection /// </summary> /// <param name="aObject">Insert AnonymousObject</param> public void Add(AnonymousObject aObject) { if (List.Contains(aObject)) { throw (new ArgumentNullException("AnonymousObjectCollection Add - " + aObject.KeyName + " already exists", "this keyname '" + aObject.KeyName + "' already exists")); } else { List.Add(aObject); } }