简体   繁体   中英

VS2010 opens my class-file (.cs) in the designer mode

I've created a class that extends DbConnection in a brand new project.

public class FakeDbConnection : DbConnection { ... }

In the Solution Explorer the class looks like this: 在此输入图像描述

And when double-clicking it wants to open it in design mode which won't work. Opening up the .csproj-file reveals the problem

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

Even if I remove the SubType tag VS2010 immediately re-adds it. Very annoying.

How can I stop VS2010 from opening up my .cs file in designer mode and just open it up as a regular code file?

As described in an answer to this question you can do this:

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

Important: The attribute needs to be fully qualified otherwise VS2010 will ignore this.

Important (thanks to jmbpiano): The attribute only applies to the first class in the file.

The inheritance hierarchy indicates that this class ( DbConnection ) inherits from System.ComponentModel.Component . Try right click the file and View Source instead.

As always you can check MSDN! Here is the documentation for DbConnection .

Thats because DBConnection inherits "Component". About disabling VS to add "Subtype" in csproj-file - I don't think thats possible.

You can still aceess the code, by right-clicking in designer -> show code (I think "F7" is the shortcut key for that)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM