C#에서 일반 사전 멤버가 포함된 클래스 직렬화
프로필 클래스를 직렬화하는 동안 사전 구성원을 직렬화하는 동안 오류가 발생했습니다. Dictionary, HybridDictionary 및 Hashtable을 사용해도 "멤버 App.Configfile.mappedDrives를 직렬화할 수 없습니다"라는 오류가 계속 발생합니다.
문제 분석
일반적으로 Dictionary 및 Hashtable은 직렬화 가능하지만 일부 유형의 Dictionary 개체는 본질적으로 직렬화 가능하지 않을 수 있습니다. 이 경우 문제는 일반 유형의 사전을 직렬화하려고 시도하는 데서 발생합니다.
솔루션
Paul Welter의 블로그에서는 효율적인 직렬화 및 역직렬화를 가능하게 하는 IXmlSerialized 인터페이스를 구현하는 XML 직렬화 가능 일반 사전을 제공합니다.
솔루션 구현
다음 코드 조각을 사용하여 솔루션을 구현할 수 있습니다.
<code class="language-csharp">using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; [XmlRoot("dictionary")] public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable { // ... 省略 SerializableDictionary 类的实现细节 ... }</code>
요약하자면, 일반 Dictionary 멤버가 포함된 클래스를 직렬화하려면 IXmlSerialized 인터페이스를 명시적으로 지원하는 사용자 정의 XML 직렬화 가능 사전 클래스를 구현해야 할 수도 있습니다. 이를 통해 사전의 효율적인 직렬화 및 역직렬화가 가능해집니다.
위 내용은 C#에서 일반 사전 멤버가 포함된 클래스를 직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!