비 직렬화 할 클래스의 구조가 부분적으로 데이터 구조와 일치하는 한 차이가 없어야합니다.
RavenDB 서버는 클라이언트에서 어떤 클래스를 사용하든 상관하지 않습니다. 다른 플랫폼을 목표로한다면 dll을 공유하거나 휴대용 dll을 공유 할 수 있습니다. 그러나 그것이 필요하지 않다는 것이 맞습니다.
그러나 Raven-Clr-Type
메타 데이터 값을 알고 있어야합니다. RavenDB 클라이언트는 원본 문서를 저장할 때이를 설정합니다. deserialization을 지원하기 위해 클라이언트가 다시 소비하지만 완전히 적용되지는 않습니다. 논리는 기본적으로 이것이다 : 나는 실제로 아직 테스트하지 않은 있지만
is there ClrType metadata?
if yes, do we have that type loaded in the current app domain?
if yes, then deserialize into that type
if none of the above, then deserialize dynamically and cast into the type
requested (basically, duck-typing)
당신은 ... 내부 in the source code on github here.
화려한 답변이 비트를 검토 할 수 있습니다 : – Nick