//---------------------------------------------------------------------------------- /// <summary> /// Retourne le type de form qui sait éditer le type demandé /// </summary> /// <param name="tp"></param> /// <returns></returns> public static CReferenceTypeForm GetRefFormToEdit(Type typeAEditer) { // Cherche dans le dictionnaire des Forms préférés CReferenceTypeForm refTypeForm = null; if (CDictionnaireTypeEditeTypeFormPrefere.GetInstance().TryGetValue(typeAEditer, out refTypeForm)) { if (refTypeForm != null) { return(refTypeForm); } } // Si pas de préféré, on prend le Form "système" (comme avant) foreach (System.Reflection.Assembly ass in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type tp in ass.GetExportedTypes()) { object[] attribs = tp.GetCustomAttributes(typeof(ObjectEditeur), true); if (attribs != null && attribs.Length == 1) { ObjectEditeur objEdit = (ObjectEditeur)attribs[0]; if (objEdit.TypeEdite == typeAEditer) { CReferenceTypeFormBuiltIn tpFormSys = new CReferenceTypeFormBuiltIn(); tpFormSys.TypeForm = tp; return(tpFormSys); } } } } return(null); }
//---------------------------------------------------------------------------------- public static Type[] GetListeTypeFormToEdit(Type typeAEditer) { List <Type> lstTypeForms = new List <Type>(); foreach (System.Reflection.Assembly ass in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type tp in ass.GetExportedTypes()) { object[] attribs = tp.GetCustomAttributes(typeof(ObjectEditeur), true); if (attribs != null && attribs.Length == 1) { ObjectEditeur objEdit = (ObjectEditeur)attribs[0]; if (objEdit.TypeEdite == typeAEditer) { lstTypeForms.Add(tp); } } } } return(lstTypeForms.ToArray()); }