Exemplo n.º 1
0
        public void 配置()
        {
            INET.H日志输出.设置(q => Console.WriteLine(string.Format("{0}\t{1}\t{2}\n{3}\t{4}({5})\n{6}", q.等级, q.概要, q.详细, q.文件, q.方法, q.行号, q.异常)));
            _IT服务端 = FT通用访问工厂.创建服务端();

            var __命令行   = new B命令行();
            var __命令行对象 = 创建对象(_IT服务端, __命令行);

            _IT服务端.添加对象("命令行", () => __命令行对象);

            var __进程管理   = new B进程管理();
            var __进程管理对象 = 创建对象(_IT服务端, __进程管理);

            _IT服务端.添加对象("进程管理", () => __进程管理对象);

            var __FTP   = new BFTP();
            var __FTP对象 = 创建对象(_IT服务端, __FTP);

            _IT服务端.添加对象("FTP", () => __FTP对象);

            var __链路监控配置 = HJSON.反序列化 <M链路监控配置>(File.ReadAllText(H路径.获取绝对路径("链路监控配置.txt"), Encoding.UTF8));
            var __链路监控   = new B链路监控(__链路监控配置);
            var __链路监控对象 = 创建对象(_IT服务端, __链路监控);

            _IT服务端.添加对象("链路监控", () => __链路监控对象);

            var __进程监控配置 = HJSON.反序列化 <M进程监控配置>(File.ReadAllText(H路径.获取绝对路径("进程监控配置.txt"), Encoding.UTF8));
            var __进程监控   = new B进程监控(__进程监控配置);
            var __进程监控对象 = 创建对象(_IT服务端, __进程监控);

            _IT服务端.添加对象("进程监控", () => __进程监控对象);

            var __资源监控配置 = HJSON.反序列化 <M资源监控配置>(File.ReadAllText(H路径.获取绝对路径("资源监控配置.txt"), Encoding.UTF8));
            var __资源监控   = new B资源监控(__资源监控配置);
            var __资源监控对象 = 创建对象(_IT服务端, __资源监控);

            _IT服务端.添加对象("资源监控", () => __资源监控对象);

            var __业务日志对象 = 创建对象(_IT服务端);

            _IT服务端.添加对象("业务日志", () => __业务日志对象);
        }
Exemplo n.º 2
0
        M对象 创建对象(IT服务端 __IT服务端, B命令行 __命令行, string __对象名称 = "命令行", string __分类 = "")
        {
            Func <IPEndPoint, string, string>          __合并 = (__地址, __标识) => string.Format("{0}:{1}:{2}", __地址.Address, __地址.Port, __标识);
            Func <string, Tuple <IPEndPoint, string> > __解析 = __合成标识 =>
            {
                var __数组 = __合成标识.Split(':');
                var __地址 = new IPEndPoint(IPAddress.Parse(__数组[0]), int.Parse(__数组[1]));
                var __标识 = __数组[2];
                return(new Tuple <IPEndPoint, string>(__地址, __标识));
            };
            var __对象 = new M对象(__对象名称, __分类);

            __对象.添加属性("IsWindows", () => __命令行.IsWindows.ToString(), E角色.客户);
            __对象.添加方法("创建进程", (__实参列表, __地址) =>
            {
                var __进程标识 = __合并(__地址, __实参列表["进程标识"]);
                __命令行.创建进程(__进程标识);
                return("");
            }, E角色.客户, new List <M形参>
            {
                new M形参("进程标识", "string"),
            });

            __对象.添加方法("结束进程", (__实参列表, __地址) =>
            {
                var __进程标识 = __合并(__地址, __实参列表["进程标识"]);
                __命令行.结束进程(__进程标识);
                return("");
            }, E角色.客户, new List <M形参>
            {
                new M形参("进程标识", "string"),
            });

            __对象.添加方法("执行", (__实参列表, __地址) =>
            {
                var __进程标识  = __合并(__地址, __实参列表["进程标识"]);
                var __命令行列表 = HJSON.反序列化 <List <string> >(__实参列表["命令行列表"]);
                __命令行.执行(__进程标识, __命令行列表);
                return("");
            }, E角色.客户, new List <M形参>
            {
                new M形参("进程标识", "string"),
                new M形参("命令行列表", "string", E数据结构.单值数组),
            });

            __对象.添加事件("正常输出", E角色.客户, new List <M形参> {
                new M形参("参数", new M元数据 {
                    类型 = "M输出", 结构 = E数据结构.对象, 子成员列表 = new List <M子成员> {
                        new M子成员("进程标识", "string"),
                        new M子成员("内容", "string")
                    }
                }),
            });

            __对象.添加事件("异常输出", E角色.客户, new List <M形参> {
                new M形参("参数", new M元数据 {
                    类型 = "M输出", 结构 = E数据结构.对象, 子成员列表 = new List <M子成员> {
                        new M子成员("进程标识", "string"),
                        new M子成员("内容", "string")
                    }
                }),
            });

            __对象.添加事件("执行结束", E角色.客户, new List <M形参> {
                new M形参("参数", new M元数据 {
                    类型 = "M输出", 结构 = E数据结构.对象, 子成员列表 = new List <M子成员> {
                        new M子成员("进程标识", "string"),
                        new M子成员("内容", "string")
                    }
                }),
            });
            __命令行.正常输出 += __参数 =>
            {
                var __分解 = __解析(__参数.进程标识);
                var __地址 = __分解.Item1;
                __参数.进程标识 = __分解.Item2;
                __参数.内容   = __参数.内容 == null ? null : __参数.内容.Replace("{", "").Replace("}", "").Replace("[", "").Replace("]", "");
                __IT服务端.触发事件(__对象名称, "正常输出", new Dictionary <string, string> {
                    { "参数", HJSON.序列化(__参数) }
                }, new List <IPEndPoint> {
                    __地址
                });
            };
            __命令行.异常输出 += __参数 =>
            {
                var __分解 = __解析(__参数.进程标识);
                var __地址 = __分解.Item1;
                __参数.进程标识 = __分解.Item2;
                __参数.内容   = __参数.内容 == null ? null : __参数.内容.Replace("{", "").Replace("}", "").Replace("[", "").Replace("]", "");
                __IT服务端.触发事件(__对象名称, "异常输出", new Dictionary <string, string> {
                    { "参数", HJSON.序列化(__参数) }
                }, new List <IPEndPoint> {
                    __地址
                });
            };
            __命令行.执行结束 += __参数 =>
            {
                var __分解 = __解析(__参数.进程标识);
                var __地址 = __分解.Item1;
                __参数.进程标识 = __分解.Item2;
                __参数.内容   = __参数.内容 == null ? null : __参数.内容.Replace("{", "").Replace("}", "").Replace("[", "").Replace("]", "");
                __IT服务端.触发事件(__对象名称, "执行结束", new Dictionary <string, string> {
                    { "参数", HJSON.序列化(__参数) }
                }, new List <IPEndPoint> {
                    __地址
                });
            };
            return(__对象);
        }