12

我有一段这样的代码:

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

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

我知道我可以右键单击并执行“查看代码”,但这非常烦人。

无论如何,是否有强制 Visual Studio 不要假设我正在制作一个组件,或者我关心他们愚蠢的视觉设计师,这对我的课程没有任何用途?

4

2 回答 2

15

问题是Visual Studio会自动添加

<SubType>Component</SubType> 

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

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

[System.ComponentModel.DesignerCategory("Code")]
于 2013-06-13T09:12:14.843 回答
1

继承路径上带有 System.ComponentModel.Component 的类在 Visual Studio 中被自动视为“组件”

(不幸的是)WebClient 在其继承路径中有 System.ComponentModel.Component:http: //msdn.microsoft.com/en-us/library/system.componentmodel.component (v=vs.110).aspx

于 2014-02-19T09:19:14.680 回答