하나의 어셈블리에는 기본 클래스가 있고 기본 클래스를 상속받은 다른 클래스에는 다수의 생성 된 클래스가 있습니다. 하위 클래스가 기본 클래스의 어셈블리에 없기 때문에 prototype-net (r282)을 사용하여 기본 유형의 목록을 직렬화하지 못하면 subclassType (SerializerT.cs의 248 행)을 해결할 수 없습니다. 클래스를 함께 이동하는 것이 바람직한 옵션이 아니며 List를 전달할 수있는 것이 중요합니다.protobuf-net [de] 어셈블리 경계를 통해 직렬화
내 태그가 지정된 기본 클래스입니다. 포함 된 유형은 필요에 따라 ProtoMember(x)
으로 표시됩니다. 보조 노트로
[ProtoContract]
[ProtoInclude(1,"SomeItemType")]
[ProtoInclude(2,"AnotherItemType")]
[ProtoInclude(190,"YetAnotherItemType")]
public abstract class BaseItem
{
}
이 데스크톱 응용 프로그램과는 SOAP 웹 서비스간에 데이터를 이동하는 경우 BinaryFormatter를 대체 할 protobuf - 그물을 사용하여 평가의 일부입니다.
이런 종류의 작업을 수행 할 수 있습니까? 더 좋은 방법이 있습니까? 나는 명백한 무엇인가 놓치고 있냐? 별도의 장기적인 질문은 3.5 로의 최종 이동을 준비하기 위해 제가 약간 다른 것을해야만합니까?
[ProtoInclude(1, typeof(SomeItemType))]
이 또한 그냥 조립 자격을 갖춘 이름을 사용할 수 있도록, : :이 자동으로 뉘앙스를 많이 취급하기 때문에 ProtoInclude
를 사용하는
감사합니다. 마크, 내가 찾고있는 것. 전체 어셈블리로 정규화 된 이름을 사용하는 것이 트릭을 만들었습니다. 내 SomeItemType은 기본 클래스에서 사용할 수 없기 때문에 typeof (SomeItemType)는이 경우 작동하지 않습니다. 다시 한번 감사드립니다. – tsupe