本文作者:小黑黑

[微信]OnExecuting()和OnExecuted()

小黑黑 1年前 ( 2019-03-24 ) 869 抢沙发
[微信]OnExecuting()和OnExecuted()摘要:        我们在实际开发中可能会遇到这样的场景,当收到用户的消息时,我们并不希望立即去处理这些消息,而是判断是否符合某些条件,如:如果用...

       我们在实际开发中可能会遇到这样的场景,当收到用户的消息时,我们并不希望立即去处理这些消息,而是判断是否符合某些条件,如:如果用户被我们拉黑,则不再处理用户发送的任何消息,并提示用户已经被拉黑。又或者是,当我们处理完这些消息后,再去统一执行响应的操作,那么重写OnExecuting()和OnExecuted()方法无疑是一个最好的选择。

      OnExecuting()方法会在所有的消息处理方法之前执行,而OnExecuted()方法则会在所有的消息处理方法之后执行。下面我们将通过一段代码来进行演示。

public override void OnExecuting()
{
    if (RequestMessage is RequestMessageText)
    {
        var requestMessage = RequestMessage as RequestMessageText;
        if (requestMessage.Content == "拉黑")
        {
                //中断消息执行
            CancelExcute = true;

            //回复用户一条已经被拉黑的消息

            var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
            responseMessage.Content = "您已经被拉黑";

            ResponseMessage = responseMessage;
        }
    }

    base.OnExecuting();
}

public override void OnExecuted()
{
    if (ResponseMessage is ResponseMessageText)
    {
        var responseMessage = ResponseMessage as ResponseMessageText;
        responseMessage.Content += "\r\n[小黑黑]";
    }

    base.OnExecuted();
}

       当我们在微信中输入"拉黑"时,并没有去执行OnTextRequest()方法,也没有去执行OnExecuted()方法,而当我们其他文字时,执行完OnTextRequest()方法后执行OnExecuted()方法,这样我们就可以灵活的控制消息了。

分享到: 网站分享代码

发表评论

快捷回复:

评论列表 (暂无评论,869人围观)参与讨论

还没有评论,来说两句吧...