点击或拖拽改变大小
盛派网络

WorkMessageHandlerTMC

Senparc.Weixin SDK 官方教程《微信开发深度解析》已出版,支持中国开源事业,请【购买正版】
《微信公众号+小程序》视频课程已经上线,【点击这里】学习!

NeuChar(纽插)已经上线,为开发者提供一站式跨平台管理枢纽,并可将应用入驻到 NeuChar 应用商店!新功能正在不断增加中,快来使用吧! https://www.neuchar.com
在线动态微信接口 Swagger WebApi 文档: https://weixin.senparc.com:8039

继承层次
SystemObject
  Senparc.NeuChar.MessageHandlersMessageHandlerTMC, IWorkRequestMessageBase, IWorkResponseMessageBase
    Senparc.Weixin.Work.MessageHandlersWorkMessageHandlerTMC

命名空间:  Senparc.Weixin.Work.MessageHandlers
程序集:  Senparc.Weixin.Work (在 Senparc.Weixin.Work.dll 中) 版本:3.6.0.26160
语法
public abstract class WorkMessageHandler<TMC> : MessageHandler<TMC, IWorkRequestMessageBase, IWorkResponseMessageBase>, 
	IWorkMessageHandler, IMessageHandler<IWorkRequestMessageBase, IWorkResponseMessageBase>, IMessageHandlerDocument, 
	IMessageHandlerBase, IMessageHandlerEnlightener, IMessageHandlerNeuralNodes
where TMC : class, new(), Object, IMessageContext<IWorkRequestMessageBase, IWorkResponseMessageBase>

类型参数

TMC

WorkMessageHandlerTMC 类型公开以下成员。

构造函数
  名称说明
公共方法WorkMessageHandlerTMC(Stream, PostModel, Int32)
初始化 WorkMessageHandlerTMC 类的一个新实例
公共方法WorkMessageHandlerTMC(XDocument, PostModel, Int32)
初始化 WorkMessageHandlerTMC 类的一个新实例
Top
属性
  名称说明
公共属性AgentId
公共属性ApiEnlightener (重写 MessageHandlerTMC, TRequest, TResponseApiEnlightener.)
公共属性CancelExecute
取消执行Execute()方法。一般在OnExecuting()中用于临时阻止执行Execute()。 默认为False。 如果在执行OnExecuting()执行前设为True,则所有OnExecuting()、Execute()、OnExecuted()代码都不会被执行。 如果在执行OnExecuting()执行过程中设为True,则后续Execute()及OnExecuted()代码不会被执行。 建议在设为True的时候,给ResponseMessage赋值,以返回友好信息。
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性CurrentAppDataNode
当前 App 订阅信息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性CurrentMessageContext 已过时。
当前用户消息上下文(注意:次数据不会被缓存,每次都会重新从缓存读取。 TODO:可创建一个临时缓存对象,但需要考虑同步问题
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性CurrentMessageHandlerNode
默认 MessageHandlerNode 对象
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性DefaultMessageHandlerAsyncEvent

注意:当调用同步方法 Execute() 时,此参数会被强制设置为:SelfSynicMethod!

MessageHandler 事件异步方法的默认调用方法(在没有override的情况下)。默认值:DefaultDefaultResponseMessageAsync。

默认参数设置为 DefaultResponseMessageAsync,目的是为了确保默认状态下不会执行意料以外的代码, 因此,如果需要在异步方法中调用同名的同步方法,请手动将此参数设置为SelfSynicMethod。

(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性EcryptRequestDocument
原始的加密请求(如果不加密则为null)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性EncryptPostData
受保护的属性ExecuteStatTime (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性FinalResponseDocument (重写 MessageHandlerTMC, TRequest, TResponseFinalResponseDocument.)
公共属性GlobalMessageContext
全局消息上下文
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性MessageEntityEnlightener (重写 MessageHandlerTMC, TRequest, TResponseMessageEntityEnlightener.)
公共属性MessageIsRepeated
消息是否已经被去重
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OmitRepeatedMessage
忽略重复发送的同一条消息(通常因为微信服务器没有收到及时的响应)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OmitRepeatedMessageFunc
动态去重判断委托,仅当返回值为false时,不使用消息去重功能
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OnlyAllowEncryptMessage
当平台同时兼容明文消息和加密消息时,只允许处理加密消息(不允许处理明文消息),默认为 False
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OpenId
发送者用户名(OpenId)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性PostModel (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性RecordResponseMessageSync
是否同步向 MessageContext 写入 ResponseMessage,默认为否,将使用队列写入,提升响应速度
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性RequestDocument
在构造函数中转换得到原始XML数据
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性RequestMessage
公共属性ResponseDocument (重写 MessageHandlerTMC, TRequest, TResponseResponseDocument.)
公共属性ResponseMessage
公共属性ServiceProvider
ServiceProvide
(继承自 MessageHandlerTMC, TRequest, TResponse。)
受保护的属性SpecialDeduplicationAction
每个具体框架内额外的去重条件。返回是否已经去重(true:需要去重,false:不需要去重)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性TextResponseMessage
文字类型返回消息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性UsedMessageAgent
是否使用了MessageAgent代理
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性UserName 已过时。
公共属性UsingCompatibilityModelEncryptMessage
是否使用了兼容模式加密信息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性UsingEncryptMessage
是否使用了加密消息格式
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性WeixinOpenId 已过时。
发送者用户名(OpenId)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
Top
方法
  名称说明
公共方法BuildResponseMessage
公共方法BuildResponseMessageAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法CheckMessageRepeat
处理消息去重
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法CommonInitialize
构造函数公用的初始化方法
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法CreateResponseMessageTR
公共方法DefaultResponseMessage
公共方法Execute 已过时。

执行微信请求(如果没有被 CancelExecute=true 中断)

注意:此方法仍然会优先执行异步重写方法(如:OnTextRequest()),只在未重写对应事件的异步方法时(如: OnTextRequestAsync()),尝试查找同步重写方法

(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法ExecuteAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法GetCurrentMessageContext
当前用户消息上下文(注意:次数据不会被缓存,每次都会重新从缓存读取。
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法GetLogPath
获取日志保存地址
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法GetUnsafeMessageContext
延迟载入的上下文对象,存放在内存中。注意:使用本地内存缓存时,会每次都花心,等效于 GetCurrentMessageContext();使用分布式缓存时,不能保证此对象是实时的,如需获取实时对象,请使用 GetCurrentMessageContext() 方法
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法Init(XDocument, IEncryptPostModel)
初始化,获取RequestDocument。(必须要完成 RequestMessage 数据赋值). Init中需要对上下文添加当前消息(如果使用上下文);以及判断消息的加密情况,对解密信息进行解密
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法Init(XDocument, IEncryptPostModel)
受保护的方法MarkRepeatedMessage
标记为已重复消息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnEvent_BatchJobResultRequest
公共方法OnEvent_ChangeContactCreatePartyRequest
公共方法OnEvent_ChangeContactCreateUserRequest
公共方法OnEvent_ChangeContactDeletePartyRequest
公共方法OnEvent_ChangeContactDeleteUserRequest
公共方法OnEvent_ChangeContactUpdatePartyRequest
公共方法OnEvent_ChangeContactUpdateTagRequest
公共方法OnEvent_ChangeContactUpdateUserRequest
公共方法OnEvent_ClickRequest
公共方法OnEvent_EnterAgentRequest
公共方法OnEvent_LocationRequest
公共方法OnEvent_LocationSelectRequest
公共方法OnEvent_PicPhotoOrAlbumRequest
公共方法OnEvent_PicSysphotoRequest
公共方法OnEvent_PicWeixinRequest
公共方法OnEvent_ScancodePushRequest
公共方法OnEvent_ScancodeWaitmsgRequest
公共方法OnEvent_SubscribeRequest
公共方法OnEvent_UnSubscribeRequest
公共方法OnEvent_ViewRequest
公共方法OnEventRequest
公共方法OnExecuted
公共方法OnExecutedAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnExecuting
公共方法OnExecutingAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnFileRequest
公共方法OnImageRequest
公共方法OnLocationRequest
公共方法OnNeuCharRequest 已过时。 (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnNeuCharRequestAsync
NeuChar 请求
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnShortVideoRequest
公共方法OnTextOrEventRequest
公共方法OnTextRequest
受保护的方法OnThirdPartyEvent_Cancel_Auth
受保护的方法OnThirdPartyEvent_Change_Auth
受保护的方法OnThirdPartyEvent_Change_Contact
受保护的方法OnThirdPartyEvent_Create_Auth
受保护的方法OnThirdPartyEvent_Suite_Ticket
公共方法OnVideoRequest
公共方法OnVoiceRequest
公共方法SaveRequestMessageLog
保存请求信息

测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。

(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法SaveResponseMessageLog
保存响应信息

测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。

(继承自 MessageHandlerTMC, TRequest, TResponse。)
Top
字段
扩展方法
  名称说明
公共扩展器方法RequestNeucharResponseMessage
【异步方法】获取 NeuChar 开放平台的ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestNeuCharResponseMessage
获取 NeuChar 开放平台的ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestNeucharResponseMessageAsync
【异步方法】获取 NeuChar 开放平台的ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestNeuCharResponseMessageAsync
【异步方法】获取 NeuChar 开放平台的ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestNeuCharXml
对接 NeuChar 平台,获取Xml结果,使用WeiWeiHiKey对接 WeiWeiHiKey的获取方式请看:
(由 MessageAgent 定义。)
公共扩展器方法RequestNeuCharXmlAsync
【异步方法】对接 NeuChar 平台,获取Xml结果,使用WeiWeiHiKey对接 WeiWeiHiKey的获取方式请看:
(由 MessageAgent 定义。)
公共扩展器方法RequestResponseMessage(IServiceProvider, String, String, Stream, Boolean, Int32)已重载。
获取ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestResponseMessage(IServiceProvider, String, String, String, Boolean, Int32)已重载。
获取ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestResponseMessageAsync(IServiceProvider, String, String, Stream, Boolean, Int32)已重载。
【异步方法】获取ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestResponseMessageAsync(IServiceProvider, String, String, String, Boolean, Int32)已重载。
【异步方法】获取ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestWeiweihiResponseMessage(IServiceProvider, String, XDocument, String, Int32)已重载。
获取 NeuChar 开放平台的ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestWeiweihiResponseMessage(IServiceProvider, String, RequestMessageBase, String, Int32)已重载。
获取 NeuChar 开放平台的ResponseMessge结果
(由 MessageAgent 定义。)
公共扩展器方法RequestXml(IServiceProvider, String, String, String, Boolean, Int32)已重载。
获取Xml结果
(由 MessageAgent 定义。)
公共扩展器方法RequestXml(IServiceProvider, String, String, Stream, Boolean, Boolean, Int32)已重载。
获取Xml结果。
(由 MessageAgent 定义。)
公共扩展器方法RequestXmlAsync(IServiceProvider, String, String, String, Boolean, Int32)已重载。
【异步方法】获取Xml结果
(由 MessageAgent 定义。)
公共扩展器方法RequestXmlAsync(IServiceProvider, String, String, Stream, Boolean, Boolean, Int32)已重载。
【异步方法】获取Xml结果。
(由 MessageAgent 定义。)
公共扩展器方法Serialize
序列化对象
(由 StackExchangeRedisExtensions 定义。)
公共扩展器方法ToHashEntries
Serialize in Redis format
(由 RedisUtils 定义。)
公共扩展器方法ToJson
把数据转换为Json格式(使用Newtonsoft.Json.dll)
(由 ObjectExtensions 定义。)
Top
参见