我正在使用protobuf-net(感谢Marc :))序列化我的对象模型,但是我希望对象模型在我的程序集之外不可见(具体地说,我希望它在内部)。
默认情况下,protobuf-net似乎会生成公共部分类。我可以告诉它标记类internal
吗?
这是我的.proto
文件的简化版本:
package MyProject.Core.Persistence;
option optimize_for = SPEED;
message DataObject {
required string name = 1;
required int32 id = 2;
}
将生成以下类定义:
[global::System.Serializable,
global::ProtoBuf.ProtoContract(Name=@"DataObject")]
public partial class DataObject : global::ProtoBuf.IExtensible
{
public DataObject () {}
...
}
目前不;但是,您可以根据自己的需要编辑csharp.xslt
。
这似乎并不常见,但是可以很容易地将其添加为选项。
您可以添加以下两行
import "protobuf-net/protogen.proto";
option (.protobuf_net.fileopt).access = INTERNAL;
在定义消息之前。
package MyProject.Core.Persistence;
import "protobuf-net/protogen.proto";
option (.protobuf_net.fileopt).access = INTERNAL;
option optimize_for = SPEED;
message DataObject {
required string name = 1;
required int32 id = 2;
}