프로토 파일과 그 반대의 해석 사용자 지정 옵션에서 C 번호를 생성, 나는에 노력하고있어하십시오 .proto 파일을 생성 .proto 파일 내가 <a href="http://code.google.com/p/protobuf-net/" rel="nofollow">protobuf-net</a>을 사용하고
- 각각 사용하여 아주 쉽게는 C# 클래스
에서 :
protogen.exe
도구를Serializer<T>.GetProto()
방법
그러나 것은 내가 프로토 버퍼 custom options을 지원해야하고 비록 내가만큼 간단하지 않는 것이다.
설명해 드리죠 : 메시지와 분야에 적용되는 사용자 지정 옵션이 포함 된 프로토 파일에서- , 나는 .NET의 사용자 지정 특성에 의해 장식 된 C# 클래스를 생성합니다.
- 사용자 지정 특성으로 장식 된 C# 클래스에서 메시지 및 필드에 사용자 지정 옵션이 적용되는 proto 파일을 생성하려고합니다.
는 기본적으로 주어진 :
message person {
option (my_message_option) = true;
optional string firstname = 1 [(my_field_option) = 42];
optional string lastname = 2 [(my_field_option) = 12];
optional int age = 3;
}
내가 생성 할 :
[ProtoContract, MyMessageOption(true)]
public class Person
{
[ProtoMember(1), MyFieldOption(42)]
public string Firstname;
[ProtoMember(2), MyFieldOption(12)]
public string Firstname;
[ProtoMember(3)]
public string Firstname;
}
... 그리고 그 반대의 경우도 마찬가지입니다.
주 :
- 사용자 지정 옵션 정의 (
my_message_option
및my_field_option
는) 이미 protofile (예를 들어, my_custom_options.proto)에 존재 수 있으며, 사용자 정의 클래스는 어딘가에 존재할 수 속성 (MyMessageOptionAttribute
및MyFieldOptionAttribute
). - protogen.exe와 사용자 지정 xslt를 사용하려고했지만 protogen이 사용자 지정 옵션을 지원하는 으로 보이지 않습니다.
달성하기 위해 가장 좋은 방법은 무엇입니까? 이 솔루션은 protobuf-net에 의존 할 필요가 없습니다.
proto 파일에서 데코 레이팅 된 C# 파일 (protobuf-net 용)을 생성하려면 동일한 작업을 수행하고 싶습니다. 당신이 이걸 어떻게 달성했는지에 대한 exapme를 주시겠습니까? 감사! – pogorman