gpt4 book ai didi

c# - Task<> 不包含 'GetAwaiter' 的定义

转载 作者:IT王子 更新时间:2023-10-29 03:50:10 26 4
gpt4 key购买 nike

客户端

iGame Channel = new ChannelFactory<iGame> ( new BasicHttpBinding ( BasicHttpSecurityMode . None ) , new EndpointAddress ( new Uri ( "http://localhost:58597/Game.svc" ) ) ) . CreateChannel ( );

public Task<SerializableDynamicObject> Client ( SerializableDynamicObject Packet )
{
return Task<SerializableDynamicObject> . Factory . FromAsync ( Channel . BeginConnection , Channel . EndConnection , Packet , null );
}

契约(Contract)

    [OperationContract ( AsyncPattern = true )]
IAsyncResult BeginConnection ( SerializableDynamicObject Message , AsyncCallback Callback , object State );

SerializableDynamicObject EndConnection ( IAsyncResult Result );

服务

public IAsyncResult BeginConnection ( SerializableDynamicObject Message , AsyncCallback Callback , object State )
{
dynamic Request = Message;
dynamic Response = new SerializableDynamicObject ( );
if ( Request . Operation = "test" )
{
Response . Status = true;
}
Response . Status = false;

return new CompletedAsyncResult<SerializableDynamicObject> ( Response );
}

public SerializableDynamicObject EndConnection ( IAsyncResult Result )
{
return ( Result as CompletedAsyncResult<SerializableDynamicObject> ) . Data;
}

从 Silverlight 客户端公开服务

private async void myButton ( object sender , RoutedEventArgs e )
{
dynamic Request = new SerializableDynamicObject ( );
Request . Operation = "test";

var task = Client ( Request );
var result = await task; // <------------------------------ Exception
}

异常

Task<SerializableDynamicObject > does not contain a definition for 'GetAwaiter'

什么出了什么问题?


编辑 1:

简而言之,

Visual studio 2012 RC Silverlight 5 应用程序 使用游戏 WCF 4 服务 托管在ASP.net 4 应用程序通过共享 可移植库 .NET4/SL5 使用 ChannelFactory 技术包含带有 Async CTP

iGame 接口(interface)

图表:
ASP.NET <= 类库(游戏)<= 可移植库(iGame)=> Silverlight


编辑 2:

  • Microsoft.CompilerServices.AsyncTargetingPack.Silverlight5.dll 添加到我的 SL5 客户端
  • 使用系统。线程。任务;

最佳答案

我在我的一个项目中遇到了这个问题,我发现我已将项目的 .Net Framework 版本设置为 4.0,并且只有 .Net Framework 4.5 及更高版本才支持异步任务。

我只是将我的项目设置更改为使用 .Net Framework 4.5 或更高版本并且它起作用了。

关于c# - Task<> 不包含 'GetAwaiter' 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com