2

このサンプル .proto ファイルを protobuf-net でコンパイルすると:

message A
{
   repeated float values = 1;
}

生成されたファイルには、プロパティを持つクラスが含まれていList<Single>ます。ObservableCollection<Single>の代わりにプロパティを使用する方法はありますList<Single>か? 実際には、生成されたクラスを WPF アプリケーションで直接使用したいのですが、この場合変更が見られないため、このプロパティをバインドするのは少し難しいです。

これにはいくつかの回避策がありますか?そうしないと、クラスごとにラップを作成する必要があり、あまり便利ではありません。

編集:たとえば、すべてのリストをバッチファイル内の監視可能なコレクションに置き換えることができますが、いくつかの問題が発生しますか? それとも、この場合の本当の解決策ですか?

4

1 に答える 1

3

現時点では、code-gen ツールは にハードコードされていList<T>ます。もちろん、code-gen ツールも完全にオプションなので、1 つのオプションは、code-gen ツールを使用しないことです (手書きの DTO では問題なく動作します)。自動置換を行うだけでよろしい場合は、それで問題ありません。protobuf-net を混乱させることはありません。しかし、これを何度も行う場合はcsharp.xslt、コード ジェネレーターのディレクトリにあるファイルを編集するという別のオプションがあります。これは、モデルの xml 表現からコードを生成する xsl 変換ファイルです。global::System.Collections.Generic.List好きなように変更できるのは (IIRC) 3 回あります。を上書きするかcsharp.xslt、新しいファイルにコピー (および編集) してから、 を呼び出すときにそれを変換として指定するだけprotogenです。

于 2013-04-29T11:33:47.850 に答える