protobuf-net重复字段为ObservableCollection<
本文关键字:ObservableCollection 字段 protobuf-net | 更新日期: 2023-09-27 18:11:09
当我用protobuf-net编译这个样例.proto文件时:
message A
{
repeated float values = 1;
}
生成的文件包含具有List<Single>
属性的类。有没有办法用ObservableCollection<Single>
的性质来代替List<Single>
?实际上,原因是:我想在WPF应用程序中直接使用生成的类,但是在某种程度上绑定这个属性有点困难,因为在这种情况下我不会看到任何更改。
可能有一些解决这个问题的方法?因为不然的话,我将不得不为每个类做换行,这不是很方便。
EDIT:例如,我可以将所有列表替换为可观察集合内部的批处理文件,但这会导致一些问题吗?或者它是这个案例的真正解决方案?
目前代码生成工具硬编码到List<T>
。当然,代码生成工具也是完全可选的——所以一个选项是:不要使用代码生成工具(它可以很好地与手绘的dto一起工作)。如果您很乐意简单地进行自动替换,那很好——它根本不会打乱protobuf-net。但是,如果您经常这样做,另一种选择是编辑代码生成器目录中的csharp.xslt
文件。这是一个xsl-transform文件,它从模型的xml表示生成代码。global::System.Collections.Generic.List
有(IIRC) 3次出现,您可以将其更改为您喜欢的任何内容。您可以覆盖csharp.xslt
,或者将其复制到一个新文件中(并编辑它),然后在调用protogen
时指定它作为转换。