public void Persist(object bindableObject, object control, params object[] p)
{
Control c = control as Control;
if (c == null || bindableObject == null)
return;
string domainobject = bindableObject.GetType().Name;
PropertyInfo[] properties = bindableObject.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
Dictionary<string, Control> dictionary = c.GetControls();
foreach (PropertyInfo pi in properties)
{
foreach (string key in _persisters.Keys)
{
string name = key + domainobject + pi.Name;
if (!dictionary.ContainsKey(name)) continue;
foreach (IControlPersister persister in _persisters[key])
{
persister.Persist(bindableObject, pi, dictionary[name]);
}
}
}
}