问题
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?
回答1:
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.
回答2:
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
.
回答3:
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)
来源:https://stackoverflow.com/questions/11880589/vs2010-opens-my-class-file-cs-in-the-designer-mode