2012-06-20 1 views
1

Protobuf-NET은 내가 각 클래스에이 속성을 추가 할 수 있었다 대부분의 DTO들에 대한 작업을 ProtoBuf를 사용하려면 클래스Protobuf-net에 클래스에 속성이없는 경우 공용 필드를 직렬화하는 방법이 있습니까?

[ProtoContract(ImplicitFields = ImplicitFields.AllPublic)] 
public class Customer 
{ 

} 

의 public 필드를 직렬화 할 수있는 옵션이 있습니다. 전역으로 설정하는 방법이 있나요? 따라서 직렬화되는 클래스에 ProtoContract 또는 DataContract와 같은 속성이 없으면 기본적으로 "ImplicitFields.AllPublic"이 사용됩니다.

+0

일부 Aspect 지향 프로그래밍을 사용할 수 있습니다 :-). 모든 공용 필드에 특성을 주입하십시오. – MBen

답변

2

아니요, 현재 지원되지 않습니다. V2에서는 그러나

RuntimeTypeModel.Default.Add(typeof(Customer), false).Add({fields}); 

를 통해, 런타임에 유형에 대해 그것을 말할 수 있지만 ImplicitFields을 받아 거기에서 옵션은 현재 존재하지 않습니다 (이 그냥 감독, 그리고에 추가됩니다 미래의 빌드).

처음으로 새로운 유형이 표시 될 때 트리거되는 이벤트를 추가하는 방법에 대해 몇 사람과 토론을 했으므로 이벤트 구독으로이를 수행 할 수 있습니다. 그것은 아직 쓰여지지 않았다.

+0

이 전역 ImplicitFields 옵션이 추가 되었습니까? API에서 찾을 수없는 것 같습니다. –

관련 문제