gpt4 book ai didi

c# - protobuf-net 重复字段作为 ObservableCollection

转载 作者:行者123 更新时间:2023-12-04 04:59:53 27 4
gpt4 key购买 nike

当我使用 protobuf-net 编译这个示例 .proto 文件时:

message A
{
repeated float values = 1;
}

生成的文件包含具有 List<Single> 的类属性(property)。有什么办法可以用ObservableCollection<Single>属性而不是 List<Single> ?实际上,原因是:我想在 WPF 应用程序中直接使用生成的类,但是将此属性绑定(bind)到 something 有点困难,因为在这种情况下我看不到任何更改。

可能有一些解决方法吗?因为否则我将不得不为每个类做包装,这不是很方便。

编辑:例如,我可以在批处理文件中用可观察的集合替换所有列表,但是它会导致一些问题?或者它是这种情况的真正解决方案?

最佳答案

目前,code-gen 工具被硬编码为 List<T> .当然,code-gen 工具也是完全可选的 - 所以 一个 选项是:不要使用 code-gen 工具(它可以很好地处理手绘 DTO)。如果您乐于简单地进行自动替换,那很好——它根本不会扰乱 protobuf-net。但是如果你经常这样做,另一种选择是编辑 csharp.xslt代码生成器目录中的文件。这是一个 xsl 转换文件,它从模型的 xml 表示中生成代码。 global::System.Collections.Generic.List 出现 (IIRC) 3 次你可以改变任何你喜欢的。您可以覆盖 csharp.xslt ,或将其复制到一个新文件中(并编辑它),然后在调用 protogen 时将其指定为转换.

关于c# - protobuf-net 重复字段作为 ObservableCollection<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16264431/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com