获取基于c#类的* .proto文件

时间:2012-07-03 11:06:45

标签: protobuf-net

我有以下用例:有几个用ProtoContract类装饰的程序集,我想基于程序集生成proto文件。那么问题是如何做到这一点?

我的第一个目的是使用Serailizer.GetProto,但它是通用方法,对我来说不起作用,因为我只知道运行时的类类型。

另外为什么r480 GetProto不是必须的?

我很了解VS08 / 10,但它似乎对我的情况没有帮助。

提前致谢。

2 个答案:

答案 0 :(得分:4)

您可以使用Serializer.GetProto方法稍加反思:

var method = typeof(Serializer).GetMethod("GetProto").MakeGenericMethod(type);
Func<string> getProto = Delegate.CreateDelegate(typeof(Func<string>), method);
var proto = getProto();

答案 1 :(得分:4)

  

另外为什么r480 GetProto不是必须的?

因为我的时间有限,而且请求很多。我最近有很多人问我关于GetProto的问题,所以我在我的名单上突然提出这个问题。我必须优先考虑功能方面的工作,以及可能的使用方式。 GetProto不是&#34;核心&#34;序列化,但我想继续支持。这需要付出努力。使用这个功能是因为我没有理由推迟推迟v2代码库。

好消息是v2的核心是非通用的,旧的通用API纯粹是为了兼容性而维护的。因此,当我重新实现它时,它将完全可用而不用泛型。


更新:已在r545中进行了实验性切割。它通过了v1测试,但是:在这个功能上没有很多v1测试!所以:我将很快为此添加更多测试。