Td.Weixin.Public/Plugin/Invoker.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*******************************
* Author: Dong[http://blog.tecd.pw] [mailto:techdong@hotmail.com] 欢迎交流 Q群:289147891
* Date: 2013-09-13 21:10:36
* Desc:
*
*******************************/
using System;
using System.Collections.Generic;
using System.Linq;
using Td.Weixin.Public.Common;
using Td.Weixin.Public.Message;
namespace Td.Weixin.Public.Plugin
{
/// <summary>
/// 调用者,控制插件的执行。
/// </summary>
public class Invoker
{
private static readonly List<Plugin> Plugins = new List<Plugin>();
/// <summary>
/// 是否验证签名信息。
/// 如果为true,签名失败时当不会执行插件.
/// </summary>
public static bool RequireCheck = true;
/// <summary>
/// 商家信息获取者。用于根据商家微信公号的openid获取商家信息。
/// 如果平台有多个微信公号,必须实现此抽象类,否则不能获取到商家信息。
/// </summary>
public static SellerObtainer Obtainer { get; set; }
/// <summary>
/// 注册插件。
/// <para>注册的插件则按顺序执行,直到找到第一个接受调用的Plugin。这意味着顺序很重要。</para>
/// <para>同时,最后一个插件应该能处理所有调用,否则本次执行将无任何结果。</para>
/// </summary>
/// <param name="plugin"></param>
/// <param name="index"></param>
public static void RegisterPlugin(Plugin plugin, int? index = null)
{
if (plugin == null)
throw new ArgumentNullException("plugin", "不能注册null插件");
if (index.HasValue)
{
Plugins.Insert(index.Value, plugin);
}
else
{
Plugins.Add(plugin);
}
}
/// <summary>
/// 将调用转到合适的插件并由找到的插件执行处理。
/// <para>如果没有任何插件接收此次调用,将返回null。</para>
/// </summary>
后面还有 43 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。