我正在开发一个跨平台的.NET项目(桌面和Xamarin),它广泛使用protobuf-net和预编译工具。我正在努力想出一种理智的方法来自动化和构建protobuf代码,这样就可以在没有复制粘贴的情况下共享通过线路的DTO,因此可以轻松地重新生成序列化程序以响应代码更改。 / p>
以下是我目前设置的简化版本:
此设置的问题是生成的序列化程序需要来自Xam.iOS.DTO.Lib等的DTO而不是PCLDTO,我不能在应用程序中引用这些库,因为它们会与PCLDTO中的类型冲突(相同)文件链接在),因为这些程序集不是PCL兼容的。我最初考虑过在这里使用类型转发,但是当我开始深入研究它时,很明显类型转发不适用于这种方法。
所以,我的问题是 - 这个设置可以挽救吗?否则,是否有一种我可以忽视的替代方法?基本要求是让PCL持有DTO,从中可以使用protobuf-net生成特定于平台的protobuf-net序列化器,然后将其包装并注入其他PCL,并通过DTO引用PCL。