2013-04-28 34 views
1

當我編譯與protobuf網此示例.proto文件:protobuf網重複字段的ObservableCollection <T>

message A 
{ 
    repeated float values = 1; 
} 

生成的文件包含具有List<Single>屬性類。有什麼方法可以使用ObservableCollection<Single>屬性而不是List<Single>?實際上,原因是:我想直接在WPF應用程序中使用生成的類,但將此屬性綁定在一定程度上有點困難,因爲在這種情況下我不會看到任何更改。

可能會有一些解決此問題的方法嗎?因爲否則,我將不得不爲每個不太方便的課程製作包裝。

編輯:我可以代替所有listsobservable collections批處理文件的內部,例如,但它會導致一些問題?或者這是這種情況的真正解決方案?

回答

2

目前代碼生成工具被硬編碼爲List<T>。當然,代碼工具也是完全可選的 - 所以一個選項是:不從代碼工具工作(它可以在手繪DTO上正常工作)。如果你很樂意簡單地做一個自動替換,那很好 - 它根本不會讓protobuf-net懊惱。但是,如果你這樣做,另一個選擇是在代碼生成器的目錄中編輯csharp.xslt文件。這是一個xsl-transform文件,用於從模型的xml表示中生成代碼。有(IIRC)3次出現global::System.Collections.Generic.List,你可以改變你喜歡的任何東西。您可以覆寫csharp.xslt,或將其複製到新文件中(並編輯該文件),然後在調用protogen時將其指定爲轉換。

相關問題