using LJLib.Net.SPI.Com; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace LJProxy.LJLib.Net.SPI.Server { public abstract class ExcutorBase { public abstract IActionResult Excute(ILJRequest request,object state); } public abstract class ExcutorBase:ExcutorBase where T1: class,ILJRequest { protected abstract IActionResult ExcuteInternal(T1 request, object state); public override IActionResult Excute(ILJRequest request, object state) { T1 req = request as T1; if (req == null) { ErrResponse err = new ErrResponse(string.Format("request 不能转换成类型[{0}]", typeof(T1).Name)); return new JsonResult(err); } var rslt = ExcuteInternal(req, state); return rslt; } } }