Nancy异步用法

个人笔记,记录Nancy异步用法

基类,所有请求都将首先执行该类,并执行Before事件
namespace CxyAdvert.Base
{
    public class BaseNancyModel : Nancy.NancyModule
    {
        public BaseNancyModel()
        {
            Get["/"] = param =>
            {
                return "ADVERT SYSTEM";
            };
        }
        public BaseNancyModel(string path)
            : base(path)
        {
            Before += async (context, token) =>
            {
                return await VerifyAuth(context);
            };

            //After += async (context, token) =>
            //{
            //    await VerifyAuth(context);
            //};
        }

     /// <summary> /// Before执行的函数,返回null将继续执行路由指定接口,返回Response将结束并返回 /// </summary> /// <param name="nancyContext"></param> /// <returns></returns> private async Task<Response> VerifyAuth(Nancy.NancyContext nancyContext) { try { var httpMethod = nancyContext.Request.Method; if (httpMethod.ToUpper() == "POST") { var requestParms = HttpHelper.GetPostValue(nancyContext.Request.Body); if (requestParms == "") { return Response.AsJson(new ResultMsg() { code = -2, errormsg = "参数值不能为空" }); } else { } } return null; } catch (Exception error) { Logger.Error("BaseNancyModel ERROR:" + error); return Response.AsJson(new ResultMsg() { code = -2, errormsg = error.Message }); } }      public object GetEncryptValue(object msg) { var strJson = JsonConvert.SerializeObject(msg, StringFormat.jsonSerializerSettings); return strJson ; } } }

接口类,所有接口类继承基类BaseNancyModel,GetEncryptValue函数实现于基类BaseNancyModel中
namespace CxyAdvert
{
    public class AdvertSericeApi : BaseNancyModel
    {
        public AdvertSericeApi() :
            base("/cxy/api/advert/")
        {
            IAdvertSerice service = new AdvertSerice();

            Post["getshowadverts", true] = async (param, token) =>
            {
                return GetEncryptValue(await service.GetShowAdverts(BaseInputParam, ThridUser));
            };

            Post["getadverts", true] = async (param, token) =>
            {
                return GetEncryptValue(await service.GetAdverts(BaseInputParam, ThridUser));
            };
        }
    }
}

 



 

转载于:https://www.cnblogs.com/pudefu/p/7527403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值