.NET属性生成"必须声明一个主体,因为它没有标记为抽象或外部"编译错误

Mat*_*ole 12 c# compilation properties

我有一个.NET 3.5(目标框架)Web应用程序.我有一些看起来像这样的代码:

public string LogPath { get; private set; }
public string ErrorMsg { get; private set; }
Run Code Online (Sandbox Code Playgroud)

它给了我这些行的编译错误:

"must declare a body because it is not marked abstract or extern."
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我的理解是这种样式的属性在.NET 3.0中是有效的.

谢谢!


问题原来是我的.sln文件本身.虽然我在构建选项中更改了目标版本,但在.sln文件中,我发现了这个:

TargetFramework = "3.0"
Run Code Online (Sandbox Code Playgroud)

将其更改为"3.5"解决了它.多谢你们!

小智 16

添加到web.config

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