2012-08-09 10 views
19

He creado una clase que se extiende DbConnection en un nuevo proyecto.VS2010 abre mi archivo de clase (.cs) en el modo de diseñador

public class FakeDbConnection : DbConnection { ... } 

En el Explorador de soluciones a la clase tiene el siguiente aspecto: enter image description here

Y cuando se hace doble clic en él quiere abrirlo en el modo de diseño que no funcionará. La apertura de la .csproj-archivo revela el problema

<ItemGroup> 
    <Compile Include="FakeADO\FakeDbConnection.cs"> 
    <SubType>Component</SubType> 
    </Compile> 
</ItemGroup> 

Incluso si quito el VS2010 SubType etiqueta inmediatamente vuelve a agregar la misma. Muy molesto.

¿Cómo puedo evitar que VS2010 abra mi archivo .cs en modo de diseñador y simplemente abrirlo como un archivo de código normal?

+0

Elimine el archivo y vuelva a agregarlo y recuerde cambiar el tipo esta vez – Ankit

+0

Intentó y VS2010 vuelve a agregar el tipo tan pronto como abra el proyecto. – vidstige

Respuesta

39

Como se describe en la respuesta a this question se puede hacer esto:

[System.ComponentModel.DesignerCategory("Code")] 
class FakeDbConnection: DbConnection { ... } 

Importante: El atributo es necesario que haya otra manera fully qualified VS2010 ignorará este.

Importante (gracias a jmbpiano): El atributo solo se aplica a la primera clase en el archivo.

+0

Interesante ... no funciona para mí :-(Estoy usando VS2010 y lo intenté con una clase que simplemente hereda Component, y también probé con una clase que hereda TabControl. ..no tanta suerte ... tal vez no funciona en Express ediciones, aunque me parece muy poco probable! – series0ne

+0

Hmm, extraño. ¿Quitó manualmente la etiqueta de niño de la etiqueta en el archivo .csproj? – vidstige

+3

Encontrado el problema, necesita * completamente * calificar el atributo, o no funcionará. – vidstige

0

Eso es porque DBConnection hereda "Componente". Acerca de deshabilitar VS para agregar "Subtipo" en csproj-file - No creo que eso sea posible.

Puede todavía Aceess el código, haciendo clic derecho en el diseñador -> código de espectáculo (creo "F7" es la tecla de acceso directo para eso)

+0

¡Bienvenido a stackoverflow! Gracias por la respuesta. Ya lo sabía, pero no lo puse en la pregunta. Parece que pesa un poco. Pero si es la única forma, supongo que es una especie de solución. – vidstige

1

La jerarquía de herencia indica que esta clase (DbConnection) hereda de System.ComponentModel.Component. Intente hacer clic con el botón secundario en el archivo y Ver origen en su lugar.

¡Como siempre puede consultar MSDN! Here es la documentación para DbConnection.

+0

Gracias, yo ya sabía esto, pero es muy engorroso. Abrir un archivo no debería ser tan complicado. – vidstige

+1

@vidstige No es exactamente complicado, simplemente no es tan fácil como hacer doble clic. Echa un vistazo a la configuración y las opciones de Visual Studio. Es posible que pueda encontrar una opción como "Derivaciones de componentes abiertos en la vista de origen de forma predeterminada". Sé lo que quieres decir sin embargo, es molesto que los componentes se abren en el diseñador cuando no todos los componentes son necesariamente identificables. – series0ne

+0

El que busca encontrará - Ver mi respuesta :) – vidstige

Cuestiones relacionadas