MessageHandlerTMC, TRequest, TResponse 类 |
Senparc.Weixin SDK 官方教程《微信开发深度解析》已出版,支持中国开源事业,请【购买正版】!
《微信公众号+小程序》视频课程已经上线,【点击这里】学习!
NeuChar(纽插)已经上线,为开发者提供一站式跨平台管理枢纽,并可将应用入驻到 NeuChar 应用商店!新功能正在不断增加中,快来使用吧! https://www.neuchar.com
在线动态微信接口 Swagger WebApi 文档: https://weixin.senparc.com:8039
命名空间: Senparc.NeuChar.MessageHandlers
public abstract class MessageHandler<TMC, TRequest, TResponse> : IMessageHandler<TRequest, TResponse>, IMessageHandlerDocument, IMessageHandlerBase, IMessageHandlerEnlightener, IMessageHandlerNeuralNodes, IMessageHandlerWithContext<TMC, TRequest, TResponse> where TMC : class, new(), Object, IMessageContext<TRequest, TResponse> where TRequest : class, IRequestMessageBase where TResponse : class, IResponseMessageBase
MessageHandlerTMC, TRequest, TResponse 类型公开以下成员。
名称 | 说明 | |
---|---|---|
![]() | MessageHandlerTMC, TRequest, TResponse(Stream, IEncryptPostModel, Int32, Boolean, IServiceProvider) | 初始化 MessageHandlerTMC, TRequest, TResponse 类的一个新实例 |
![]() | MessageHandlerTMC, TRequest, TResponse(XDocument, IEncryptPostModel, Int32, Boolean, IServiceProvider) |
使用postDataDocument的构造函数
|
![]() | MessageHandlerTMC, TRequest, TResponse(RequestMessageBase, IEncryptPostModel, Int32, Boolean, IServiceProvider) | 使用 requestMessageBase 的构造函数(请勿在生产环境中使用!) 此构造函数仅提供给具体的类库进行测试使用例如 Senparc.NeuChar.Work。请勿在生产环境中使用! |
名称 | 说明 | |
---|---|---|
![]() | ApiEnlightener |
请求和响应消息有差别化的定义
|
![]() | CancelExecute |
取消执行Execute()方法。一般在OnExecuting()中用于临时阻止执行Execute()。
默认为False。
如果在执行OnExecuting()执行前设为True,则所有OnExecuting()、Execute()、OnExecuted()代码都不会被执行。
如果在执行OnExecuting()执行过程中设为True,则后续Execute()及OnExecuted()代码不会被执行。
建议在设为True的时候,给ResponseMessage赋值,以返回友好信息。
|
![]() | CurrentAppDataNode |
当前 App 订阅信息
|
![]() | CurrentMessageContext |
已过时。
当前用户消息上下文(注意:次数据不会被缓存,每次都会重新从缓存读取。
TODO:可创建一个临时缓存对象,但需要考虑同步问题
|
![]() | CurrentMessageHandlerNode |
默认 MessageHandlerNode 对象
|
![]() | DefaultMessageHandlerAsyncEvent | 注意:当调用同步方法 Execute() 时,此参数会被强制设置为:SelfSynicMethod! MessageHandler 事件异步方法的默认调用方法(在没有override的情况下)。默认值:DefaultDefaultResponseMessageAsync。 默认参数设置为 DefaultResponseMessageAsync,目的是为了确保默认状态下不会执行意料以外的代码, 因此,如果需要在异步方法中调用同名的同步方法,请手动将此参数设置为SelfSynicMethod。 |
![]() | EcryptRequestDocument |
原始的加密请求(如果不加密则为null)
|
![]() | ExecuteStatTime | |
![]() | FinalResponseDocument |
最后返回的ResponseDocument。
如果是Senparc.NeuChar.QY,则应当和ResponseDocument一致;如果是Senparc.NeuChar.QY,则应当在ResponseDocument基础上进行加密
|
![]() | GlobalMessageContext |
全局消息上下文
|
![]() | MessageEntityEnlightener |
请求和响应消息有差别化的定义
|
![]() | MessageIsRepeated |
消息是否已经被去重
|
![]() | OmitRepeatedMessage |
忽略重复发送的同一条消息(通常因为微信服务器没有收到及时的响应)
|
![]() | OmitRepeatedMessageFunc |
动态去重判断委托,仅当返回值为false时,不使用消息去重功能
|
![]() | OnlyAllowEncryptMessage |
当平台同时兼容明文消息和加密消息时,只允许处理加密消息(不允许处理明文消息),默认为 False
|
![]() | OpenId |
发送者用户名(OpenId)
|
![]() | PostModel | |
![]() | RecordResponseMessageSync |
是否同步向 MessageContext 写入 ResponseMessage,默认为否,将使用队列写入,提升响应速度
|
![]() | RequestDocument |
在构造函数中转换得到原始XML数据
|
![]() | RequestMessage |
请求实体
|
![]() | ResponseDocument |
根据ResponseMessageBase获得转换后的ResponseDocument
注意:这里每次请求都会根据当前的ResponseMessageBase生成一次,如需重用此数据,建议使用缓存或局部变量
|
![]() | ResponseMessage |
响应实体
正常情况下只有当执行Execute()方法后才可能有值。
也可以结合Cancel,提前给ResponseMessage赋值。
|
![]() | ServiceProvider |
ServiceProvide
|
![]() | SpecialDeduplicationAction |
每个具体框架内额外的去重条件。返回是否已经去重(true:需要去重,false:不需要去重)
|
![]() | TextResponseMessage |
文字类型返回消息
|
![]() | UsedMessageAgent |
是否使用了MessageAgent代理
|
![]() | UserName | 已过时。 |
![]() | UsingCompatibilityModelEncryptMessage |
是否使用了兼容模式加密信息
|
![]() | UsingEncryptMessage |
是否使用了加密消息格式
|
![]() | WeixinOpenId |
已过时。
发送者用户名(OpenId)
|
名称 | 说明 | |
---|---|---|
![]() | BuildResponseMessageAsync | |
![]() | CheckMessageRepeat |
处理消息去重
|
![]() | CommonInitialize |
构造函数公用的初始化方法
|
![]() | CreateResponseMessageTR |
根据当前的 RequestMessage 创建指定类型(RT)的 ResponseMessage
|
![]() | Execute |
已过时。
执行微信请求(如果没有被 CancelExecute=true 中断) 注意:此方法仍然会优先执行异步重写方法(如:OnTextRequest()),只在未重写对应事件的异步方法时(如: OnTextRequestAsync()),尝试查找同步重写方法 |
![]() | ExecuteAsync | |
![]() | GetCurrentMessageContext |
当前用户消息上下文(注意:次数据不会被缓存,每次都会重新从缓存读取。
|
![]() | GetLogPath |
获取日志保存地址
|
![]() | GetUnsafeMessageContext |
延迟载入的上下文对象,存放在内存中。注意:使用本地内存缓存时,会每次都花心,等效于 GetCurrentMessageContext();使用分布式缓存时,不能保证此对象是实时的,如需获取实时对象,请使用 GetCurrentMessageContext() 方法
|
![]() | Init |
初始化,获取RequestDocument。(必须要完成 RequestMessage 数据赋值).
Init中需要对上下文添加当前消息(如果使用上下文);以及判断消息的加密情况,对解密信息进行解密
|
![]() | MarkRepeatedMessage |
标记为已重复消息
|
![]() | OnExecuted |
已过时。
在 Execute() 之后运行(如果没有被 CancelExecute=true 中断)
|
![]() | OnExecutedAsync | |
![]() | OnExecuting |
已过时。
在 Execute() 之前运行,可以使用 CancelExecute=true 中断后续 Execute() 和 OnExecuted() 方法的执行
|
![]() | OnExecutingAsync | |
![]() | OnNeuCharRequest | 已过时。 |
![]() | OnNeuCharRequestAsync |
NeuChar 请求
|
![]() | SaveRequestMessageLog |
保存请求信息
测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。 |
![]() | SaveResponseMessageLog |
保存响应信息
测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。 |