/// <summary>
        /// 创建代码
        /// </summary>
        /// <remarks>
        /// 这里需要输出3组文件
        /// 1.客户端接口
        /// 2.代理类
        /// 3.代理类和接口的绑定
        /// </remarks>
        /// <param name="dllFile"></param>
        /// <param name="outFolder">输出目录</param>
        /// <param name="nameSpace">基础的命名空间</param>
        public static void CreateCode(string dllFile, string outFolder, string nameSpace)
        {
            StringBuilder interfaceCode = new StringBuilder();

            var dll = Assembly.LoadFrom(dllFile);
            StringBuilder proxyregBuilder = new StringBuilder();

            foreach (var type in dll.GetTypes())
            {
                if (type.IsInterface)
                {
                    var i = type.GetCustomAttributes(typeof(ClientInterfaceAttribute), true);
                    if (i.Length > 0)
                    {
                        //  将接口代码的代码重新复制过去
                        var code = new CreateInterfaceCode(type).CreateCode();
                        interfaceCode.Append(code);

                        //  生成客户端解包代码并写入对应文件
                        code = new CreateReadCode(type).CreateCode();

                        string typeName = Utils.GetFixInterfaceName(type.Name);

                        var context = FileCodeBase
                            .Replace("#code#", code)
                            .Replace("#namespace#", nameSpace)
                            .Replace("#ClassName#", typeName)
                            .Replace("`", "\"");

                        string fileName = Path.Combine(outFolder, string.Format(@"Controller\{0}\{0}Controller.Net.cs", typeName));
                        var fi = new FileInfo(fileName);
                        if (!fi.Directory.Exists)
                            fi.Directory.Create();

                        File.WriteAllText(fileName, context, Encoding.UTF8);
                    }
                }
            }
            var fileContext = InterfaceCodeBase
            .Replace("#code#", interfaceCode.ToString())
            .Replace("#namespace#", nameSpace)
            .Replace("`", "\"");

            File.WriteAllText(Path.Combine(outFolder, @"Controller\Auto\LogicInterface.cs"), fileContext, Encoding.UTF8);
        }
        /// <summary>
        /// 创建代码
        /// </summary>
        /// <param name="dllFile"></param>
        /// <param name="outFile"></param>
        public static void CreateCode(string dllFile, string outFile)
        {
            StringBuilder codeBuilder = new StringBuilder();

            var dll = Assembly.LoadFrom(dllFile);
            StringBuilder proxyregBuilder = new StringBuilder();

            foreach(var type in dll.GetTypes())
            {
                if (type.IsInterface)
                {
                    var i = type.GetInterface("DogSE.Server.Core.LogicModule.ILogicModule");
                    if (i != null)
                    {
                        Console.WriteLine(type.ToString());

                        var crc = new CreateReadCode(type);
                        codeBuilder.Append(crc.CreateCode());
                        proxyregBuilder.Append(crc.CreateRegisterProxyCode());
                    }
                }
            }

            var fileContext = FileCodeBase
                .Replace("#code#", codeBuilder.ToString())
                .Replace("#proxyregister#", proxyregBuilder.ToString())
                .Replace("`", "\"");

            File.WriteAllText(outFile, fileContext, Encoding.UTF8);
        }