Am organizat metode de extensie utilizând o combinație de spațiu de nume și nume de clasă și este similar cu modul în care descrieți în întrebare.
În general, în soluția mea am un fel de "asamblare primară", care oferă majoritatea funcțiilor comune (cum ar fi metodele de extensie). Vom numi acest ansamblu "cadru" de dragul discuțiilor.
În cadrul ansamblului cadru, încerc să imite spațiile de nume ale lucrurilor pentru care am metode de extensie. De exemplu, dacă extind System.Web.HttpApplication, aș avea un spațiu de nume "Framework.Web". Clase precum "String" și "Object", care se află în spațiul de nume "System", se traduc în spațiul de nume "Framework" rădăcină din acel ansamblu.
În cele din urmă, denumirea merge în funcție de liniile pe care le-ați specificat în întrebare - numele de tip cu "Extensii" ca sufix. Aceasta generează o ierarhie de clase astfel:
- Framework (namespace)
- Framework.ObjectExtensions (class)
- Framework.StringExtensions (class)
- Framework.Web (namespace)
- Framework.Web.HttpApplicationExtensions (class)
Beneficiul este că, dintr-o perspectivă de întreținere, este foarte ușor să găsiți mai târziu metode de extensie pentru un anumit tip.