좋은 접근 방법은 ServiceStack 구성 객체의 SerializeFn
루틴을 사용하고 성별 열거 형에 대한 사용자 정의 직렬화를 구성하는 것입니다.
var person = new Person()
{
FullName = "John Johnson",
Gender = Gender.Male
};
JsConfig<Gender>.SerializeFn = c =>
c.Equals(Gender.Male) ? "M" : "F";
var result = person.ToJson(); // {"FullName":"John Johnson","Gender":"M"}
업데이트 : 우리는 당신이 4+에 ServiceStack.Text 라이브러리를 업그레이드 할 수 있고, 당신은 확실히 기존의 enummember 여기, 속성을 활용하고자하는 결정 이후 인 SerializeFn 접근 방식을 완전히 생략 솔루션 .
기존의 enummember 속성을 사용할 수있는 ServiceStack.Text.EnumMemberSerializer
이라는 추가적인 너겟 패키지를 설치할 수 있습니다.
new EnumSerializerConfigurator()
.WithEnumTypes(new Type[] { typeof(Gender) })
.Configure();
JsConfig.Reset();
var result = JsonSerializer.SerializeToString(person); // {"FullName":"John Johnson","Gender":"M"}
ServiceStack.Text 3.9로 테스트 한 결과 작동했습니다.
답장을 보내 주셔서 감사합니다. 나는 똑같은 것을 시도했지만 나를 위해 일하는 것 같지 않습니다. – Krushal
열거 형을 직렬화하는 데 사용하는 정확한 코드로 질문을 업데이트 할 수 있습니까? 또한 문제가 될 수 있으므로 ServiceStack 라이브러리의 버전을 지정할 수도 있습니다. –
여전히 "M"대신 "남성"을 제공합니다. 사용중인 제품 버전 : 3.9.59.0 – Krushal