2008-12-16 37 views
4

我嘗試編譯POCO與此代碼.NET - 錯誤試圖編譯自動屬性

public class MenuItem 
{ 
    public string Name 
    { get; set; } 
    public string Url 
    { get; set; } 
} 

我不斷收到編譯錯誤上獲取並設置有類似的消息: 「MenuItem.Name。得到'必須申報一個機構,因爲它沒有標記爲抽象或外部。 我錯過了什麼?我正在編譯爲.NET 3.5的本地文件系統網站的App_Code文件夾中編譯此類。我知道我以前做過這件事,但無法弄清楚我的做法有什麼不同。

回答

12

確保您Web.config文件包含一個子元素<system.codedom><configuration>元素是這樣的:

<system.codedom> 
    <compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
       type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
    </compilers> 
</system.codedom> 

問題發生在ASP.NET運行老版本的C#編譯器來編譯應用程序(V2的事實產生.0)不支持自動屬性。爲了使用.NET 3.5功能,您必須明確指定Web.config中的編譯器版本。

+0

謝謝。具有編輯權限的人可以修復丟失的關閉標記。 – BuddyJoe 2008-12-16 13:23:24