호환되는 조직
기존 조직 활성화가 요청을 처리하려고 할 때 런타임은 요청의 버전과 조직의 실제 버전이 호환되는지 확인합니다. Orleans(은)는 사용할 정책을 런타임에 유추하지 않습니다. 두 버전이 호환되는지 확인하는 기본 동작은 Orleans.Versions.Compatibility.CompatibilityStrategy에 의해 결정됩니다.
이전 버전과 호환(기본값)
정의
다음과 같은 경우 조직 인터페이스 버전 Vn이 Vm과 역호환될 수 있습니다.
- 인터페이스의 이름이 변경되지 않았습니다(또는 재정의된 형식 코드).
- Vm 버전에 있는 모든 공용 메서드가 Vn 버전에 있습니다. Vm에서 상속된 메서드의 서명은 수정되지 않는 것이 중요합니다. Orleans(이)가 내부 기본 제공 직렬 변환기를 사용하기 때문에 필드(프라이빗 까지)를 수정/변경하면 serialization이 중단될 수 있습니다.
Vn은 Vm과 다르게 메서드를 추가할 수 있으므로 Vm은 Vn과 호환되지 않습니다.
예시
클러스터에 V1 및 V2라는 지정된 인터페이스의 두 가지 버전이 있고, 해당 V2가 V1과 역호환되는 경우:
- 현재 활성화가 V2이고 요청된 버전이 V1인 경우 현재 활성화는 요청을 정상적으로 처리할 수 있습니다.
- 현재 활성화가 V1이고 요청된 버전이 V2인 경우 현재 활성화가 비활성화되고 V2와 호환되는 새 활성화가 만들어집니다(버전 선택기 전략 참조).
완전 호환
정의
다음과 같은 경우 조직 인터페이스 버전 Vn은 Vm과 완전 호환될 수 있습니다.
- Vn이 Vm과 역호환되는 경우
- Vn 버전에 공용 메서드가 추가되지 않은 경우
Vn이 Vm과 완전 호환되고 Vm도 Vn과 완전 호환되는 경우
예시
클러스터에 V1 및 V2라는 지정된 인터페이스의 두 가지 버전이 있고, 해당 V2가 V1과 완전 호환되는 경우:
- 현재 활성화가 V2이고 요청된 버전이 V1인 경우 현재 활성화는 요청을 정상적으로 처리할 수 있습니다.
- 현재 활성화가 V1이고 요청된 버전이 V2인 경우 현재 활성화는 요청을 정상적으로 처리할 수 있습니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET