2011-05-14 9 views
7

tengo una clase llamada ConfigurationElementCollection<T>Está utilizando el sistema. * Espacios de nombres en sus propias clases considera malas prácticas?

Es una aplicación genérica de System.Configuration.ConfigurationElementCollection

Se almacena en nuestras soluciones, Project.Utility.dll pero he definido como siendo parte del espacio de nombres System.Configuration

namespace System.Configuration 
{ 
    [ConfigurationCollection(typeof(ConfigurationElement))] 
    public class ConfigurationElementCollection<T> : 
     ConfigurationElementCollection where T : ConfigurationElement, new() 
    { 
     ... 
    } 
} 

Está poniendo clases en el sistema. * Espacios de nombres considerados malas prácticas cuando no son parte del sistema. * Bibliotecas de clase base?

En apariencia, parece tener sentido, ya que mantiene clases similares con funcionalidades similares en el mismo lugar. Sin embargo, podría causar confusión para alguien que no se dio cuenta de que en realidad era parte de un BCL no .NET ya que no sabrían a dónde ir buscando la referencia.

+1

La respuesta es sí. – mellamokb

+0

Ok. esa es una encuesta bastante buena para mí. gracias chicos. –

Respuesta

7

Si bien su clase es similar, todavía no es parte del BCL. No lo pondría en System. * Por esto. Causará confusión, especialmente cuando uno va a usarlo y tienen System. * Referenciado y luego obtener un desagradable no puede encontrar el mensaje cuando van a utilizar su clase .... :-)

3

Lo recomendaría ya sea reemplazando System por el nombre de su compañía/proyecto o prefijando el espacio de nombre con su nombre de compañía/proyecto.

De esta manera deja en claro que no es parte del BCL, sino exactamente cómo se relaciona con ellos.

También en el evento (que es poco probable) Microsoft alguna vez implemente estas clases/métodos con exactamente con los mismos nombres no obtendrá un choque.

Cuestiones relacionadas