>백엔드 개발 >C++ >.NET 2.0에서 사전 멤버를 사용하여 클래스를 직렬화하는 방법은 무엇입니까?

.NET 2.0에서 사전 멤버를 사용하여 클래스를 직렬화하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-15 18:39:44709검색

.NET 2.0에서 사전 멤버 클래스에 대한 직렬화 메서드가 포함되어 있습니다

이 기사는 사전 멤버가 포함된 클래스 직렬화 문제에 대한 이전 논의를 확장합니다. 이 클래스에는 guiPath, configPathmappedDrives의 세 가지 속성이 포함되어 있습니다. mappedDrives은 드라이브 문자를 네트워크 경로에 매핑하는 사전입니다.

그러나 클래스를 직렬화하거나 역직렬화할 때 사용자에게 다음 오류가 표시됩니다.

구성원 App.Configfile.mappedDrives를 직렬화할 수 없습니다

이 오류는 어떤 이유로 .NET 2.0의 일반 사전이 XML 직렬화가 불가능하기 때문에 발생합니다.

솔루션

이 문제를 해결하기 위해 사용자는 사용자 정의 직렬화 가능 사전 클래스를 사용할 수 있습니다. Paul Welter는 자신의 블로그에서 이러한 수업을 제공합니다.

<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
{
    // 部分代码省略 ...
}</code>

이 클래스는 IXmlSerializable 인터페이스를 구현하여 직렬화 및 역직렬화를 가능하게 합니다. 그런 다음 사용자는 기본 클래스에서 이 사용자 정의 사전 클래스를 사용할 수 있습니다.

<code class="language-csharp">// ...

public Dictionary<string, string> mappedDrives = new SerializableDictionary<string, string>();

// ...</code>

이렇게 하면 클래스가 올바르게 직렬화 및 역직렬화될 수 있습니다.

How to Serialize a Class with a Dictionary Member in .NET 2.0?

위 내용은 .NET 2.0에서 사전 멤버를 사용하여 클래스를 직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.