C#中使用protobuf

1.创建一个4.5以上project。
2.使用nuget安装Google.ProtoBuf,也可手动引用Google.Protobuf.dll。
3.转换proto文件为cs文件,使用nuget安装Google.Protobuf.Tools。
(新版本的protogen 只支持proto2,不支持proto3)
proto文件如下:

 // [START declaration]
syntax = "proto3";
package BASE;
// [END declaration]

// [START messages]
message DatabaseInfo
{
    string	szDbName =1;
    string	szDbIP =2;
    string	szUser =3;
    string	szPWd =4;
    int32		nPort=5;
} 
// [END messages]

在项目目录中:packages\Google.Protobuf.Tools.3.7.0\tools\找到protoc.exe,进入目录,
拷贝base.proto到protoc.exe目录运行:

.\protoc.exe --csharp_out=./ *.proto

可看到生成了对应的cs文件,copy到项目中使用即可。

4.在工程的main函数中输入

    class Program
    {
        static void Main( string[] args )
        {
            BASE.DatabaseInfo _dbinfo = new BASE.DatabaseInfo();
            _dbinfo.SzDbIP = "127.0.0.1";
            _dbinfo.NPort = 3306;
            _dbinfo.SzDbName = "mydb";
            Console.WriteLine( _dbinfo.ToString() );
            Console.ReadKey();
        }
    }

输出结果为:

{ "szDbName": "mydb", "szDbIP": "127.0.0.1", "nPort": 3306 }

版权声明:本文为fangqingivu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。