2011-01-18 17 views
7

A class diagram¿Por qué Visual Studio ha marcado mi clase como componente?

He copiado algunas clases en este proyecto, algunas de otros proyectos. En algún punto, VS ha marcado Class1 como componente (puede verlo desde el icono que se muestra en la captura de pantalla anterior). Class2 está bien. No hay diferencia en las propiedades del archivo y ninguna diferencia interesante en el código entre Class1 y Class2 (* excepto ver edición abajo)

No se detiene el código de compilación o correr. ¿De hecho es un problema? Es es inconveniente porque el IDE intenta abrir la ventana Diseño si hace doble clic en el archivo.

¿Cómo sucede esto y cómo solucionarlo?

Edit: En realidad, existen diferencias interesantes en la ventana de códigos. Al menos, debe haber, ya que al eliminar una gran parte del código, el Explorador de soluciones revierte el archivo a un archivo Clase. Restaure el fragmento y el archivo vuelve a ser un Componente. Actualmente ... investigando.

Respuesta

12

No estoy seguro de por qué hace esto, pero sé cómo deshacerse de él. Antes de su puesto de clase:

[System.ComponentModel.DesignerCategory("Code")] 

Se debe trabajar.

+0

funciona! Gracias. – hawbsl

+0

Debe tener el calificador completo presente en el atributo (como se indicó anteriormente), incluso si tiene una sentencia using para System.ComponentModel. –

3

Para el "por qué" parte de su pregunta (tomado de this post que parece ser un duplicado):

clase con System.ComponentModel.Component en su ruta de herencia son tratados automáticamente como "componentes" dentro de Visual Studio (2008), desencadenando un icono diferente para el archivo fuente:

Cuestiones relacionadas