实现简单的CSharpShell -- OrcShell (1) 基本结构

一、程序的基本结构

程序的控制核心是Context类,它持有:

·类型管理器TypeManager,管理该运用程序域加载的命名空间及类型的树,树结构如下:

   TypeDictionary(Root)
     |--TypeDictionary
     |    |--TypeDictionary
     |    |--TypeDictionary
     |    |
     |    |--Type
     |    |--Type
     |    |
     |
     |--TypeDictionary
     |
     |--Type
     |--Type
     |

其中TypeDictionary对应的是命名空间,Type对应的是类型。TypeManager还管理一个名为Now的 TypeDictionary,表示当前所在的 TypeDictionary。

·AliasCmds ,命令缩写字典。

·Instances,用户变量字典。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索管理
, 结构
, 程序
, 类型
, 字典
type
shell的简单实现、实现一个简单的shell、mono csharp shell、简单的shell脚本、shell脚本实现ssh登录,以便于您获取更多的相关知识。

时间: 2024-09-17 01:33:52

实现简单的CSharpShell -- OrcShell (1) 基本结构的相关文章

实现简单的CSharpShell -- OrcShell

IDE总是笨重不堪,于是我们需要一个简单的控制台Shell去执行一些简单的语句,做一些简单的任务 .就把它叫做 OrcShell,暂且需要这个简单的Shell具备以下功能: (1)浏览类型: (a)像列出当前目录下的子目录和文件一样列出当前命名空间下的类型及下属命名空间(指令:lsc或 dirc. ls 和 dir 保留,留待操作目录) (b)像进出目录一样进出命名空间(指令:cdc .cd 保留,留待操作目录) 如图,其中N代表是命名空间 namespace,C 代表的是类 Class: (c

实现简单的CSharpShell -- OrcShell (2) 类型浏览、执行代码片断与其它

二.类型管理 1.程序集与类型的管理 在Context初始化时便将AppDomain中的类型全部加载并交给TypeManager管理: public Context() { -- TypeManager = new TypeManager(); Assemblys = new Dictionary<String, Assembly>(); Assembly[] al = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly a i

C#结构数组最简单的初始化方式是什么?

问题描述 我要初始化的结构数组并非简单类型,而是有自定义类型,结构如下:structUIList{CMDcmd;//自定义枚举型stringdesc;ControlcheckBox;Controllabel;} 数组:UIList[]m_pList={{CMD.XXX,"XXX",checkBox_XXX,label_XXX},{CMD.YYY,"YYY",checkBox_YYY,label_YYY},} 1.这样写编译不过2.改成下面的还是编译不过UIList[

面向对象的css:团队协作开发规范和按结构划分模块

文章简介:面向对象的css有两个主要原则:separate the structure from the skin,separate the container from the content.第一个原则体现在模块化思想可以理解为,模块的设计制作和布局框架本身相分离,意味着你的模块不能只为某个布局而编写样式,像微博这类存在换肤功能的产 说起模块化,也许我们首先想到的是编程中的模块设计,以功能块为单位进行程序设计,最后通过模块的选择和组合构成最终产品.把这种思想运用到页面构建中,也已经不是什么新

无线标记语言(WML)基础之WML程序结构

程序 上一节我们降解了一个简单的WML程序,具有HTML编程的读者可以看出,WML程序在结构上形式上与html程序有很多相似之处.下面我们就根据一个实例来分析一下WML程序的结构及组成. 1.WML的元素和标签 分析实例之前,我们有必要对WML的元素和标签予以简单说明.与HTML类似,WML的主要语法也是元素和标签.元素是符合DTD(文档类似定义)的文档组成部分,如title(文档标题).IMG(图像).table(表格)等等,元素名不区分大小写.WML使用标签来规定元素的属性和它在文档中的位置

.NET平台下Web树形结构程序设计

web|程序|设计 我的上篇文章<树形结构在开发中的应用>主要是在Windows Form下的实现,下面讲一下Web Form下的实现. 概述 TreeView是一个重要的控件,无论是在VB.NET,C# 还是VB.Delphi等各种语言中,都充当了导航器的作用.在实际工作中,很多情况下需要将TreeView与数据库进行连接,以填充其节点.在Windows Form和Web Form中,我们可以用TreeView来显示树形结构,如显示目录树.显示地区.分类显示商品等.可以说,在大部分软件的开发

项目常用算法之Nhibernate三层结构

本文简单比较了动软三层结构和"Nhibernate三层结构". (1)动软三层架构 刚开发ASP.Net应用时,使用动软自动生成的三层架构,用起来方便.就是改动起来麻烦.比如要加一 个查询数据的方法,先在DAL层添加接口方法,再到SQLServerDAL层添加实现代码,再到BLL层添加一个包 装方法.向某个表里添加一个字段,就得重新生成一遍,要不然就自己一层一层改. IDAL层,可以由OracleDAL或DB2DAL来实现,目的是屏蔽数据操作的细节.BLL层是有必要的,封装业 务处理逻

详解Java设计模式编程中的Flyweight享元模式的开发结构_java

享元(Flyweight)模式:通过共享技术以便有效的支持大量细粒度的对象. 享元模式在阎宏的<java与模式>中分为单纯享元模式和复合享元模式,复合模式的复合享元是不可以共享的,享元对象能做到共享的关键是区分内蕴态(Internal State)和外蕴态( External State).这两个"蕴态"翻译的太难懂,我不是说翻译的不好,可能是我理解能力差,还是<Design Pattern Elements of Reusable Object-Oriented S

ffmpeg结构体以及函数介绍(一)

本文对在使用ffmpeg进行音视频编解码时使用到的一些函数做一个简单介绍,我当前使用的ffmpeg版本为:0.8.5,因为本人发现在不同的版本中,有些函数名称会有点小改动,所以在此有必要说明下ffmpeg的版本号.     ffmpeg本人也是刚接触,本文将采用累加的方法逐个介绍我使用到的函数,如有不妥之处,还望谅解!     头文件引入方法: extern "C" { #include "libavcodec/avcodec.h" #include "l