23

我在一个全新的项目中创建了一个扩展DbConnection的类。

public class FakeDbConnection : DbConnection { ... }

在解决方案资源管理器中,该类如下所示:在此处输入图像描述

双击时它想在设计模式下打开它,这是行不通的。打开 .csproj 文件会发现问题

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

即使我删除SubType标签 VS2010 立即重新添加它。很烦人。

如何阻止 VS2010 在设计器模式下打开我的 .cs 文件并将其作为常规代码文件打开?

4

3 回答 3

42

对此问题的回答中所述,您可以执行以下操作:

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

重要:该属性需要完全限定,否则 VS2010 将忽略这一点。

重要(感谢 jmbpiano):该属性仅适用于文件中的第一个类。

于 2012-08-10T07:55:16.433 回答
1

继承层次结构表明此类 ( DbConnection) 继承自System.ComponentModel.Component。尝试右键单击文件并查看源代码。

与往常一样,您可以查看 MSDN!DbConnection.

于 2012-08-09T09:51:28.473 回答
0

那是因为 DBConnection 继承了“组件”。关于禁用 VS 在 csproj 文件中添加“子类型” - 我认为这是不可能的。

您仍然可以通过右键单击设计器->显示代码来访问代码(我认为“F7”是快捷键)

于 2012-08-09T09:50:21.517 回答