2013-04-26 39 views
9

我有這樣一段代碼:如果我的代碼不是「設計時間組件」,可以繼承WebClient嗎?

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來不承擔我正在做一個組件或者說,我關心他們的愚蠢的可視化設計也是沒有用處的我的課?

+0

也許看看'csproj'文件的XML。確保它被標記爲''種類的條目。編輯:也許它被標記爲一種完全不同的文件;確保它下面沒有'設計師'子標籤。 – 2013-04-26 15:42:05

回答

11

的問題是,Visual Studio會自動在你的.csproj的文件,只要你從Web客戶端繼承添加

​​

。即使您嘗試刪除此項,Visual Studio在您重新打開該項目時再次添加它。

一種解決方案是將以下屬性添加到您的類。

[System.ComponentModel.DesignerCategory("Code")] 
+1

這不會在Visual Studio 2013年的工作中 – Kyle 2014-05-05 14:57:55

+0

VS2013,我用下面的提示從另一個線程,一切運行良好:1.使用全System.ComponentModel.DesignerCategory,不依賴於使用。 2.編輯.csproj文件並從該類的Compile標記中刪除組件(爲了安全起見,我修改了Compile標記以使其自動關閉,如其他)。這很容易被誤解,所以如果你修改你的班級,你可能會發現你不止一次地這樣做。 – RobinHood70 2014-07-30 19:29:01