2011-04-27 7 views
1

저는 protobuf-net을 사용하고 있습니다. 지금까지 그것을 좋아하지만, 한가지는 저를 괴롭 히고 있습니다. 메시지에서 사용하고 싶은 클래스가 있지만 원본에 없습니다.protobuf-net에 클래스를 추가하는 방법

이렇게 :

 
[ProtoContract] 
class Test{ 
    [ProtoMember(1)] 
    public Otherclass Attr {get;set} 
} 
하지만 ProtoBuf는 Otherclass를 직렬화하는 방법을 알지 못해서 코드에 액세스 할 수 없습니다. 그래서 어떻게해야 하는지를 설명해야하지만 어떻게해야합니까?

답변

1

xmlaerializer 또는 datacontractserializer 특성이없는 경우가 아니면 v1에서는이를 수행 할 수 없습니다. 글쎄, 이 아닙니다.이 참입니다 ... 거기에 입니다. GlobalOptions 토글이 이론상 작동해야하지만, 유형이 변경되면 매우 추측됩니다. 많은 것을 추측합니다.

더 나은 옵션은 알파 다운로드로 제공되는 'v2'를 살펴 보는 것입니다. 기여한 유형은 괜찮지 만 형식이없는 유형을 처리하는 방법을 유형 모델에 알릴 수도 있습니다. 이것은 모두 RuntimeTypeModel을 통해 이루어진다.

+0

thx이지만 이름에있는 ALPHA는 너무 두려워서 길이를 보지 못했습니다. – Killili

+0

@Killili'GlobalOptions'가 작동 할 수도 있습니다. 그렇지 않으면 별개의 DTO 레이어를 사용하는 것이 가장 좋습니다. 즉, 제어하는 ​​대상에 데이터를 다시 매핑하십시오. –

+0

그냥 질문 : 자세히 알려지지 않은 유형의 콜백을 추가하는 것이 좋지 않습니까? 따라서 프로그래머는 주문과 이름을 설명하기 위해 ProtoMemberAtrributes의 목록을 반환하는 것과 같은 사용자 지정 처리를 추가 할 수 있습니까? – Killili

관련 문제