2008-12-16 12 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