当前位置: 首页 > news >正文

网站建设用户需求阿里云网站备案核验单

网站建设用户需求,阿里云网站备案核验单,国外网站建设费用,泰安网站建设电话文章速览 概述例程请求类命名空间父类示例子类示例 命令类命名空间子类示例 记录的数据结构实现绑定方法 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ 概述 需求: 将指定的两种类型的…

文章速览

  • 概述
  • 例程
    • 请求类
      • 命名空间
      • 父类示例
      • 子类示例
    • 命令类
      • 命名空间
      • 子类示例
    • 记录的数据结构
    • 实现绑定方法

坚持记录实属不易,希望友善多金的码友能够随手点一个赞。
共同创建氛围更加良好的开发者社区!
谢谢~

概述

需求:
将指定的两种类型的类进行绑定,记录到对应的字典中。

思路:
使用反射,获取指定命名空间下,所有的请求类,判定其是否符合条件,如果符合条件,就寻找对应命名空间中是否存在相应的执行类,将其添加入[请求&命令执行]字典中,用做后续命令执行的分发。

例程

首先,需要对两种类型,各自创建其父类、或是接口;
两者需要创建在不同的命名空间下,便于反射时的获取

请求类

命名空间

Test.ReqActions

父类示例

此处的 ActionTypes 作为枚举,可以定义并标记各中不同的请求

    public class ActionBase{public ActionBase(){}public ActionTypes Action { get; set; } public string Msg { get; set; }/// <summary>/// 标记每次执行的req 和 ret 对应/// </summary>public long Id { get; set; }}

子类示例

继承自操作父类,内部可以自定义一些个性化属性

    public class ReqCancelProcessing : ActionBase{public ReqCancelProcessing(){Action = ActionTypes.ReqCancelProcessing;AskCancel = true;}public bool AskCancel { get; set; }}

命令类

命名空间

Test.Commands```###  接口示例
定义命令实现的接口,让继承的子类,去做具体的逻辑实现
```csharp/// <summary>/// 指令的接口/// </summary>public interface ICommand{/// <summary>/// 处理成功返回1,失败返回0/// </summary>/// <param name="obj">执行指令的对象</param>/// <returns>返回执行是否成功</returns>int Execute(object obj);}

子类示例

public class ReqCancelProcessingCommand : ICommand{public int Execute(object obj){ReqCancelProcessing req = obj as ReqCancelProcessing;try{//具体实现逻辑}catch (Exception ex){          }return 1;}}

记录的数据结构

使用字典,这样便于后期的查找和使用,仅作示例,用string或是上面的枚举都是ok的

        /// <summary>/// 指令动作字典/// </summary>public Dictionary<string, ICommand> ActionToCommand { get; set; } = new Dictionary<string, ICommand>();

实现绑定方法

const string actionsNamespace = "Test.ReqActions";const string commandsNamespace = "Test.Commands";/// <summary>/// 将指令和Action相互绑定,并加入字典中/// </summary>private void AddActionsToDictionary(){//获取当前程序集Assembly assembly = Assembly.GetExecutingAssembly();foreach (Type type in assembly.GetTypes()){//检查类型是否在ReqActions命名空间中 并且继承于 ActionBaseif (type.Namespace == actionsNamespace &&typeof(ActionBase).IsAssignableFrom(type)){//获取类的全名string actionFullName = type.FullName;//获取对应的Command类型Type commandType = assembly.GetTypes().FirstOrDefault(t =>t.Namespace == commandsNamespace && t.Name == type.Name + "Command");//检查对应的Command类型是否存在, 并且 继承 与 ICommandif (commandType != null && typeof(ICommand).IsAssignableFrom(commandType)){//创建并添加实例ActionToCommand.Add(actionFullName, (ICommand)Activator.CreateInstance(commandType));}}}}
http://www.yayakq.cn/news/338589/

相关文章:

  • 邢台集团网站建设价格wordpress播放器源码
  • 网站标题改了软件开发合同范本大全
  • 怎么在百度制作自己的网站做问卷调查的网站有啥
  • 怎么做交易猫假网站如何自定义wordpress登录
  • 浙江做公司网站多少钱南京平面设计培训
  • 琼海网站建设公司北京石景山私人影院哪里有
  • phpmysql网站开发技术好做的网站
  • 北京随喜设计网站安徽元鼎建设工程网站
  • 网站备案导致网站被k注册安全工程师官网
  • 大连微信网站建设wordpress自定义
  • 五大门户网站分别是建设工程知识类网站
  • 网站建设明薇通网络售后好济南做企业网站的公司
  • 免费网站建设软件事业单位网站备案流程
  • 网站开发项目网站开发 报价单
  • 在线支付的网站怎么做企业固定ip做网站
  • 网站上线详细步骤phpstudy安装wordpress
  • 网站建设公司南宁网站托管团队
  • 网站里面的导航图标怎么做的亚洲男女做暖网站
  • 在域名上建设网站曲靖网站微信建设
  • 做网站的分辨率是72吗怎么建立自己的网站免费
  • 网站推广渠道特点北京知名网站
  • 参与做网站的收获网站自动加水印
  • seo教程网站有网站的源代码如何做网站
  • 网站设计一年费用网页制作手机软件
  • 寿光网站建设m0536网页制作教程模板
  • 制作网站的素材四川成都新冠最新消息
  • 北京网站建设公司升上去湖南3合1网站建设公司
  • 如何比较网站做写手一般上什么网站好
  • 有哪些做外贸免费的网站深圳小程序制作公司
  • 网站名称 规则php做商城网站