是否可以使用protobuf与继承的类?
我想做这样的事情
class Expr;
class AddExpr : Expr;
class CallFunc: Expr;
class FunctionBody{
repeatable Expr expr;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 10
不在核心实现中 - 您可能希望使用封装.
不过,如果你使用的是刚刚 protobuf网,如代码为先,我砍它周围:
[ProtoInclude(1, typeof(AddExpr))]
[ProtoInclude(2, typeof(CallFunc))]
[ProtoContract]
class Expr {}
[ProtoContract]
class AddExpr : Expr {}
[ProtoContract]
class CallFunc: Expr {}
[ProtoContract]
class FunctionBody{
private List<Expr> expressions;
[ProtoMember(1)]
public List<Expr> Expressions {
get { return expressions ?? (expressions = new List<Expr>()); }
}
}
Run Code Online (Sandbox Code Playgroud)
当然,我假设在类中有一些额外的细节 - "按原样"你可以使用枚举(这是很好的支持).