[VisualStudio]Componentを継承した.csクラスファイルを開くとデザイナで開こうとしてエラーになる

DBアクセス関係のクラスをテスト時にモックに差し替えたくて
ADO.NET周りのクラスのモックを作っていたんですが、
ただの.csファイルなのに、ソリューションエクスプローラーから開こうとしたら
デザイナで開こうとしてエラーになる現象に悩まされた。

Visual Studioのエラー画面

↑こんな画面。
右のソリューションエクスプローラーを見ると
普通のクラスファイルと違うアイコンになっているのがわかる。

なんだこれはと思って.csprojをのぞいてみると

<ItemGroup>
  <Compile Include="MockConnection.cs">
    <SubType>Component</SubType>
  </Compile>
  <Compile Include="MockDataReader.cs" />
  <Compile Include="MockTransaction.cs" />
  <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

このSubType=Componentとなっているのが問題のクラスだ。

このクラスで継承してるDbConnectionクラスがComponentのサブクラスなので
そういうこと?って思ったものの、解決策がわからず。
一応右クリック>コードの表示で開けるには開けるんだけども、
なんかじゃまくさいなぁと思っていた。

そんでググったら、StackOverflowで↓の情報を発見。
VS 2010 setting non-GUI class file as Component

見事に対処方法が書いてあって、
クラスの属性を以下のようにつけることで解決した。

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

 

上記の回答者も書いてくれているんだけど、謎なことに
属性の「System.ComponentModel」をusingに入れて省略して書いてしまうと
解決しない。
VisualStudioはusing無視しますよ、だそうだ。まじか。