问题
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