4

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

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

我不断在获取和设置上收到编译错误,其中包含以下消息:“MenuItem.Name.get”必须声明一个主体,因为它没有标记为抽象或外部。我错过了什么?我正在本地文件系统网站的 App_Code 文件夹中编译此类,该网站设置为编译为 .NET 3.5。我知道我以前做过,但不知道我在做什么不同。

4

1 回答 1

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明确指定编译器版本。

于 2008-12-16T04:57:41.583 回答