将 protobuf-net RuntimeTypeModel 编译为 C#,而不是 DLL

Posted

技术标签:

【中文标题】将 protobuf-net RuntimeTypeModel 编译为 C#,而不是 DLL【英文标题】:Compile protobuf-net RuntimeTypeModel to C#, not DLL 【发布时间】:2014-02-28 05:03:31 【问题描述】:

对于 protobuf-net,由于构建过程的一些特殊性,我需要访问已编译的序列化程序,以手动构建代码格式的 RuntimeTypeModel,而不是程序集。

假设我可以找到反编译器,我正在考虑生成程序集,然后运行反编译器来生成 C# 文件。但是,这是一种丑陋的方法,我宁愿避免它。

protobuf-net 是否支持生成带有 C# 输出的编译模型?

【问题讨论】:

【参考方案1】:

不,它没有。它适用于原始 IL 级别。

【讨论】:

Compile 方法是它生成 IL 的唯一位置吗?我正在考虑对其进行修改,使其只发出 C#。 @sient 真的没有;有一个复杂的“装饰器”模式在起作用,每个模式都会为所需的步骤发出 IL。转换它:不实用。您可能想查看基于代码发射的 protobuf-csharp-port

以上是关于将 protobuf-net RuntimeTypeModel 编译为 C#,而不是 DLL的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xamarin ios pcl 中使用 protobuf-net

使用 Protobuf-net 将大数据文件流式传输为 IEnumerable

将 protobuf-net RuntimeTypeModel 编译为 C#,而不是 DLL

带有未知子类的 Protobuf-net 异常

用于继承的 Protobuf-net .proto 文件生成

将 protobuf-net RuntimeTypeModel 与 GrpcClient (AddCodeFirstGrpcClient) 一起使用