사전 멤버로 C# 클래스 직렬화: 간단한 솔루션
많은 개발자는 직렬화 가능성에 대한 일반적인 오해로 인해 사전이 포함된 C# 클래스를 직렬화하는 데 어려움을 겪습니다. 대중적인 믿음과는 달리, 사전은 효과적으로 직렬화될 수 있습니다. 핵심은 IXmlSerializable
인터페이스
직렬화 가능한 일반 사전 생성
쉽게 사용할 수 있는 솔루션은 IXmlSerializable
을 구현하는 일반 사전을 만드는 것입니다. 이를 통해 원활한 직렬화가 가능합니다.
<code class="language-csharp">[XmlRoot("dictionary")] public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable { // Implementation omitted for brevity }</code>
구성 클래스에 통합
구성 클래스(예: ConfigFile
)에서 이를 사용하려면 표준 Dictionary
멤버를 이 사용자 정의 SerializableDictionary
:
<code class="language-csharp">public SerializableDictionary<string, string> mappedDrives = new SerializableDictionary<string, string>();</code>
직렬화 및 역직렬화: 변경할 필요 없음
XmlSerializer
을 사용하는 기존 직렬화 및 역직렬화 방법은 수정 없이 작동해야 합니다.
<code class="language-csharp">public bool Save(string filename) { // Use XmlSerializer to serialize the file } public static ConfigFile Load(string filename) { // Use XmlSerializer to deserialize the file }</code>
IXmlSerializable
을 구현하면 이제 사전 멤버가 완전히 직렬화되어 이전 직렬화 예외가 제거됩니다. 이는 자주 발생하는 문제에 대한 간단한 해결책을 제공합니다.
위 내용은 C#에서 사전 멤버가 포함된 클래스를 어떻게 직렬화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!