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

建设小说网站小说源浙江坤宇建设有限公司网站

建设小说网站小说源,浙江坤宇建设有限公司网站,房地产网站建设价格,wordpress连不上文章速览 概述例程请求类命名空间父类示例子类示例 命令类命名空间子类示例 记录的数据结构实现绑定方法 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ 概述 需求: 将指定的两种类型的…

文章速览

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

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

概述

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

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

例程

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

请求类

命名空间

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/748052/

相关文章:

  • 360怎么变成建设银行首选网站在本地搭建wordpress
  • 做外贸做网站网站手机模板源码下载
  • 国外免费网站域名服务器入口挺好的网页链接
  • 如何建设网站兴田德润怎么联系建设公司logo
  • 企业建设网站的比例中信建设有限责任公司集采
  • 我国档案网站建设比较分析郓城做网站
  • 网站建设的网络公wordpress aspnet_client
  • 网站的建设费计入什么科目专业做政法ppt的网站
  • 网站建设优化服务多少钱王店镇建设中心小学网站
  • 网站交互性企业网站开发计划书
  • 《网站建设》期末考试如何做php分页网站
  • 陕西网站建设厦门网站制作百度一下首页网址百度
  • 建设网站如何收费怎样只做自己的网站
  • 镇江网站建设策划如何网上免费做推广
  • 用友班级优化大师怎么用
  • 网站建设数据中心房地产广告设计
  • 站长平台官网wordpress add action
  • 福建住房和城乡建设厅网站首页wordpress自定义过滤
  • 做机械加工外贸网站哪家好html菜鸟教程首页
  • 确保网站建设又在前列百度应用市场app下载
  • mvc5网站开发之六2017网站建设方案
  • 经典网站赏析网站建站报告2000字
  • asp爆网站绝对路径wordpress 文章页404
  • 网站的形式搜索引擎入口大全
  • 定制企业网站建设哪家好外贸网站有哪些
  • 网站后台shopadmin输在哪里学生创意设计作品说明
  • 唐山市城乡建设局网站有什么做分销的几个网站
  • 微网站什么意思山东天元建设集团破产
  • 编程网站哪个好wordpress做超链接
  • 3d打印网站开发中企动力如何