.NET - 尝试编译自动属性时出错

Bud*_*Joe 4 .net c# asp.net automatic-properties

我正在尝试使用此代码编译POCO

public class MenuItem
{
    public string Name 
    { get; set; }
    public string Url
    { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我一直在使用以下消息获取编译错误:'MenuItem.Name.get'必须声明一个正文,因为它没有标记为abstract或extern.我错过了什么?我正在本地文件系统网站的App_Code文件夹中编译此类,该文件系统网站设置为编译为.NET 3.5.我知道我以前做过这个,但无法弄清楚我在做什么不同.

Meh*_*ari 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>
Run Code Online (Sandbox Code Playgroud)

问题源于ASP.NET运行旧版本的C#编译器来编译不支持自动属性的应用程序(v2.0).要使用.NET 3.5功能,您必须明确指定编译器版本Web.config.