Json.NET (버전 6.0.5)에 문제가있어서 약간 당황 스럽습니다.프로젝트 전체에서 직렬화가 작동하지 않음
[JsonConstructor]
public MyContainerClass(IEnumerable<AbstractBaseClass> myDerivedUnitClasses)
{
if (myDerivedUnitClasses == null)
{
Units = ImmutableHashSet.Create<object>();
}
else
{
Units = myDerivedUnitClasses.ToImmutableHashSet();
}
}
public IEnumerable<AbstractBaseClass> Units { get; private set; }
이 문제없이 직렬화 TypeNameHandling.Auto
에 TypeNameHandling
세트 Json.Convert
사용 : 직렬화되는 얻는다 내 수업의
하나는 다음과 같이 보입니다. 직렬화 된 JSON은 속성에 대한 기대 $type
-qualifier을 포함한다 : "System.Collections.Immutable.ImmutableHashSet`1[[AbstractBaseClass, MyLibrary]], System.Collections.Immutable"
내가 (자동 형 이름 처리를 사용하여도 직렬화) Json.Convert
를 사용하여 직렬화 또 하나. 내가 assembly.GetType(string name)
를 호출하고 결과로 null
점점 DefaultSerializationBinder
다시 오류를 추적 Error resolving type specified in JSON System.Collections.Immutable.ImmutableHashSet`1[[AbstractBaseClass, MyLibrary]], System.Collections.Immutable
Json.NET의 소스를 사용하여 다음 역 직렬화이 오류와 함께 실패합니다.
지금까지 그렇게 나빴습니다. 이제는 당황 스럽습니다. 데이터 구조를 직렬화하는 동일한 코드 블록에서 JSON을 deserialize 할 때 모든 것이 완벽하게 작동합니다 (다른 프로젝트에서 사용하는 것과 동일한 코드 사용).
도움 주셔서 감사합니다.
데이터를 비 직렬화하는 프로젝트에 불변의 콜렉션에 대한 참조를 추가하십시오. – Athari