可以从WebClient继承,而我的代码不是"设计时组件"吗?

Ear*_*rlz 10 c# components webclient visual-studio visual-studio-2012

我有一段这样的代码:

public class NoFollowWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = (HttpWebRequest)base.GetWebRequest(address);
        request.AllowAutoRedirect = false;
        return request;
    }
}
Run Code Online (Sandbox Code Playgroud)

每当我将它添加到.cs文件中时,Visual Studio 2012就是无限的智慧,将我的C#源文件转换为"设计时组件".因此,当我现在双击该文件时,我没有看到我的C#代码,而是看到"要向您的类中添加组件,请从工具箱中拖动它们并使用"属性"窗口设置其属性".

我知道我可以右击并执行"查看代码",但这非常烦人.

反正有没有迫使Visual Studio不假设我正在制作一个组件,或者我关心他们的愚蠢的视觉设计师,这对我的班级没有用处?

小智 12

问题是Visual Studio会自动添加

<SubType>Component</SubType> 
Run Code Online (Sandbox Code Playgroud)

从WebClient继承后立即在.csproj文件中.即使您尝试删除它,Visual Studio在重新打开项目时也会再次添加它.

解决方案是将以下属性添加到您的类中.

[System.ComponentModel.DesignerCategory("Code")]
Run Code Online (Sandbox Code Playgroud)