当前位置: 首页>>代码示例>>C#>>正文


C# IRequest.RespondAsync方法代码示例

本文整理汇总了C#中IRequest.RespondAsync方法的典型用法代码示例。如果您正苦于以下问题:C# IRequest.RespondAsync方法的具体用法?C# IRequest.RespondAsync怎么用?C# IRequest.RespondAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IRequest的用法示例。


在下文中一共展示了IRequest.RespondAsync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MemoryStream

		async void IRequestHandler.HandleRequest (IRequest req)
		{
			Exception ex = null;
			object result = null;
			MethodCall call = null;
			try
			{
				call = _serializer.DeserializeCall(new MemoryStream(req.Data), _binder, _selector);
			}
			catch (Exception e)
			{
				ex = e;
			}
			if (call != null)
			{
				object res = null;
				try
				{
					res = call.Method.Invoke(call.Target, call.Arguments);
				}
				catch (Exception e)
				{
					ex = e;
				}
				if (res != null)
				{
					var task = res as Task;
					if (task == null)
						result = res;
					else
					{
						await task;
						if (call.Method.ReturnType != typeof (Task))
							result = task.GetType().GetProperty("Result").GetValue(task);
					}
				}
			}

			byte[] response = null;
			if (ex == null)
			{
				try
				{
					response = Serialize(s => _serializer.SerializeResult(s, result));
				}
				catch (Exception e)
				{
					ex = e;
				}
			}
			if (ex != null)
				response = Serialize(s => _serializer.SerializeException(s, ex.ToString()));
			try
			{
				await req.RespondAsync(response);
			}
			catch
			{
				//TODO: redirect it somewhere?
			}
		}
开发者ID:kekekeks,项目名称:AsyncRpc,代码行数:61,代码来源:RequestHandler.cs

示例2: HandleRequest

 public void HandleRequest(IRequest req)
 {
     req.RespondAsync(req.Data);
 }
开发者ID:kekekeks,项目名称:AsyncRpc,代码行数:4,代码来源:TcpTransportTests.cs


注:本文中的IRequest.RespondAsync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。