.net core grpc中使用Protobuf遇到的尴尬
.net core 3.0面世后,兴冲冲地拿来做项目。分布式服务自然用到了grpc调用,用了以后发现,无论google的还是Marc Gravell 的,都在继承和泛型两个问题上呆住。
在前期抽象和规划后,弄出的类库,当我要做调用时,居然没法直接用。
Marc Gravell 的友好一些,不过在继承的实现上还是相当繁琐,甚至面临重构。一个最大的问题在于,protoinclude居然要求在父类中列出所有的子类,这个虽然能理解原因,但实际开发中,意味者当你扩展一个已有的类时,必须修改原来的父类。(这些类还不能跨项目,因为如果跨项目,typeof(XXX)是无法编译通过,因为父类的项目往往不会引用子类的项目,只能用类型的字符串名了,可是泛型怎么表示呢?)
越来越觉得这是不是一个大坑?原先的WCF已经很好解决的问题,在grpc这里却举步维艰。