2013-04-28 5 views
1

내가 protobuf - 그물이 샘플 .proto 파일을 컴파일 ObservableCollection에 같이 protobuf - 그물 반복 필드

message A 
{ 
    repeated float values = 1; 
} 

생성 된 파일은 List<Single> 속성이 클래스가 포함되어 있습니다. List<Single> 대신 ObservableCollection<Single> 속성을 사용할 수 있습니까? 사실, 이유는 : WPF 응용 프로그램에서 생성 된 클래스를 직접 사용하고 싶지만,이 경우에는 변경 사항이 표시되지 않으므로이 속성을 다소 바인딩하기가 어렵습니다.

몇 가지 해결 방법이 있습니까? 때문에 그렇지 않으면 나는 매우 편리하지 않은 각 클래스에 대한 랩을 만들어야 할 것입니다.

편집 : 난 그냥 예를 들어, 배치 파일의 내부 observable collections 모든 lists을 대체 할 수 있지만, 어떤 문제가 발생할 것인가? 아니면이 경우에 대한 실제 해결책입니까?

답변

2

코드 gen 도구는 List<T>으로 하드 코딩됩니다. 물론 코드 gen 도구 역시 완전히 선택 사항입니다. 따라서 옵션은 code-gen 도구에서 작동하지 않습니다 (손으로 직접 그린 DTO에서 제대로 작동합니다). 당신이 간단히 자동화 된 교체를 수행하게되어 행복하다면, 그것은 protobuf-net을 전혀 뒤집 지 않을 것입니다. 하지만이 방법을 많이 사용하면 코드 생성기의 디렉토리에있는 csharp.xslt 파일을 편집 할 수 있습니다. 이것은 모델의 xml 표현에서 코드를 생성하는 xsl-transform 파일입니다. global::System.Collections.Generic.List의 (IIRC) 3 번 발생하여 원하는대로 변경할 수 있습니다. csharp.xslt을 덮어 쓰거나 새 파일에 복사 한 다음 편집하여 protogen을 호출 할 때 변환으로 지정할 수 있습니다.