/// <summary> /// 执行Api行为 /// </summary> /// <param name="actionContext">上下文</param> /// <exception cref="SerializerException"></exception> private void ExecuteAction(ActionContext actionContext) { var parameters = FastTcpCommon.GetApiActionParameters(this.Serializer, actionContext); var returnValue = actionContext.Action.Execute(this, parameters); if (actionContext.Action.IsVoidReturn == false && this.IsConnected) { var returnByes = this.Serializer.Serialize(returnValue); actionContext.Packet.Body = returnByes; this.Send(actionContext.Packet.ToByteRange()); } }
/// <summary> /// 调用自身实现的Api行为 /// 将返回值发送给客户端 /// </summary> /// <param name="actionContext">上下文</param> /// <param name="filters">过滤器</param> private void ExecuteAction(ActionContext actionContext, IEnumerable <IFilter> filters) { // 执行Filter this.ExecFiltersBeforeAction(filters, actionContext); var parameters = FastTcpCommon.GetApiActionParameters(actionContext.Session.Serializer, actionContext); var returnValue = actionContext.Action.Execute(this, parameters); // 执行Filter this.ExecFiltersAfterAction(filters, actionContext); // 返回数据 if (actionContext.Action.IsVoidReturn == false && actionContext.Session.IsConnected) { var returnBytes = actionContext.Session.Serializer.Serialize(returnValue); actionContext.Packet.Body = returnBytes; var session = actionContext.Session; session.Send(actionContext.Packet.ToByteRange()); } }