当前位置: 首页 > 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/240419/

相关文章:

  • 学校网站建设及管理制度找外包公司做网站给源码吗
  • 没有网站 可以做cpa泰安互联网公司有哪些
  • 网站怎么设计制作wordpress 阅读器
  • 想做一个网站怎么做的中国企业500强利润排行
  • wordpress网站设密码网页链接 提取码:qqcd
  • 做一个小网站需要多少钱做网站如何挑选服务器
  • 精品购物网站网络营销外包专家
  • 做网页到哪个网站找素材页面设计原型图
  • 放单网站搜索引擎优化的定义是什么
  • asp.net企业网站模板网站建设和维护
  • 建立网站免费wordpress数据库导入插件
  • iis做的网站如何添加播放器怎么在建设银行网站购买国债
  • 广西城乡住房建设厅网站kol推广
  • 建网站的流程及注意事项帮别人设计网站的网站吗
  • 郓城县城乡和建设局网站08网站建设
  • 网站优化建议怎么写宿州市埇桥建设规划局网站
  • 企业网站优化分为哪两个方向学编程的费用一般是多少
  • 张家港网站哪家做的好公司网站背景图片
  • 网站制作制作公司郑州团购网站建设
  • 门户网站制作百度文章收录查询
  • 贵阳学网站建设柯桥建设局网站
  • 网站开发图形化软件昆山网站建设怎么样
  • 做网页网站做网站为什么要买网站空间
  • phpcms网站音乐代码存放在什么位置自己做网站能赚钱吗2018
  • 芜湖网站制作网站建设光盘
  • 军博网站建设如何做单页网站
  • c2c模式的网站有哪些设计网站printerest
  • 建筑给排水代做网站谷歌浏览器网页版入口在哪里
  • wordpress主题显示不出来福州seo推广服务
  • 做传媒网站公司简介自适应wordpress模板