.NET 4.5中的代码约定+异步:"方法或操作未实现"

Law*_*eld 15 c# code-contracts async-await c#-5.0 .net-4.5

在Windows 7 x64上的VS2012中使用Code Contracts 1.4.51019.0时,我从ccrewrite收到以下编译错误: "该方法或操作未实施."

它似乎是由属性访问者和async缺乏内在的方法的组合引起的await.

复制步骤:

创建一个新的类库,启用"完整"运行时合同检查:

namespace CodeContractsAsyncBug
{
    using System.Threading.Tasks;

    public class Service
    {
        // Offending method!
        public async Task ProcessAsync(Entity entity)
        {
            var flag = entity.Flag;
        }
    }

    public class Entity
    {
        public bool Flag { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

还有其他人经历过这个吗?

小智 2

这似乎在 Code Contracts 1.5 版本中得到了修复。