json을 사용하여 C#에서 일련 화하려는 일부 값이있는 f # 라이브러리가 있습니다. 레지스터를 사용하면 문제가 없었지만 대수 데이터 형식을 serialize하려고하면 오류가 발생합니다.f # 대수 데이터 형식을 serialize하십시오.
예를 들어, 이것이 f # 모듈이고 t1을 직렬화하려고한다고 가정 해 보겠습니다. C#에서
module Module1=
type Tree = Leaf | Branch of Tree * int * Tree
let t1 = Leaf
나는 다음을 수행 :이 오류에 봉착
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Module1.Tree));
StreamWriter writer = new StreamWriter(@"c:\test");
serializer.WriteObject(writer.BaseStream, Module1.t1);
writer.Close();
(스페인어를 내 비주얼 스튜디오 스페인어 없기 때문에 : S)
"아니오 자체 기다리다 엘 억센 'ns.Module1 + Tree + _Leaf'는 'Module1.Tree._Leaf : http://schemas.datacontract.org/2004/07/ns'의 콘텍스트와 관련이 있습니다.이 사이트의 정보는 다음과 같습니다 : KnownTypeAttribute of Agregándolos a la DataContractSerializer와 함께 제공되는 팁). "
내 번역 : 는 "유형 'ns.Module1 + 나무 + _Leaf'는 데이터 계약 이름 'Module1.Tree._Leaf : http://schemas.datacontract.org/2004/07/ns'예상되지 않았습니다. (알려진 형식 목록에 정적으로 알 수없는 유형을 추가 예를 들어 KnownTypeAttribute 특성을 사용하거나 DataContractSerializer에 전달되는 알려진 형식 목록에 추가 할 수 있습니다. "
어떻게 해결할 수 있습니까?
감사합니다. 그 특별한 오류를 해결하는 데 도움이되었습니다. 이제 새로운 것이 있습니다 : P – hiena
또는 힌트가있는 오류 메시지처럼'[]'속성을'Tree'에 적용 할 수 있습니다. –