0
버전 간의 열거 변경에 대해이 post을 읽었지 만 도움이되지 않았습니다. 나는 다음과 같은 WCF 서비스가 : 만 서비스 측면에 새 열거 형 멤버, 을 추가하는 방법을 찾고 있어요열거 형을 사용하는 wcf 순방향 호환성
[ServiceContract]
public interface IService1
{
[OperationContract]
MyEnum Foo();
}
[DataContract]
public enum MyEnum
{
[EnumMember]
first,
[EnumMember]
Second,
}
합니다. 클라이언트가 내가 추가하고자하는 새로운 enum 멤버없이 이전 버전의 프록시를 사용하고 있다고 가정 해 봅시다. 내 목표는 직렬화 예외를 피하는 것입니다. 클라이언트가이 상황을 처리 할 수있을 정도로 똑똑하고 새로운 값이나 다른 것을 무시하고 싶습니다. 어떤 아이디어?
빠른 답장을 보내 주셔서 감사합니다. 1. 내 문제는 이미 구 버전을 릴리스했고 열거 형에 '알 수 없음'값이 없으므로 새 값을 기본값으로 변경할 수 없습니다. 2. 마지막 점에서이 트릭이 WCF 동작이나 다른 곳에서 발생해야한다는 의미였습니까? 포인트 2에 대해서는 – Sean
입니다. 코드에서 return 문 바로 앞에 있어야합니다. 포인트 1에 대해 기존 값으로 변경할 수 있습니까? 이전 클라이언트가 새로운 enum을 얻었다면 어떤 일이 일어나야하는지에 대한 비즈니스 규칙은 무엇입니까? –
오래된 클라이언트가 새로운 열거 형을 얻는다면, 그것을 무시하거나 현재 가지고 있지 않은 기본값으로 바꾸고 싶을 것입니다. 그러나이 솔루션은 또 다른 문제점을 야기합니다. 새 클라이언트는 이전 서비스에는 작동하지 않습니다. 기존 서비스에는 존재하지 않는 '새 서비스'를 호출하지 못하기 때문입니다. – Sean