天天看點

Protobuf生成Serializer

class Program
    {
        // args[0] = 導出DLL的名稱, args後面是DLL的檔案位置
        static void Main(string[] args)
        {
            if (args.Length < 3)
            {
                Console.WriteLine("輸入的參數有錯");
                System.Environment.Exit(-1);
            }
            string sDLLNS = args[0];


            var models = TypeModel.Create();
            int iCount = args.Length;
            for (int i = 1; i < iCount; i++)
            {
                Assembly assem = Assembly.LoadFrom(args[i]);
                var types = assem.GetTypes();
                foreach (var t in types)
                {
                    models.Add(t, true);
                }
            }
            models.Compile(sDLLNS, sDLLNS + ".dll");


            Console.WriteLine("生成成功 " + sDLLNS + ".dll");
            System.Environment.Exit(0);
        }
    }