C#에서 Settings.settings를 활용하여 클래스 저장하기

C#에서 Settings.settings에 클래스 저장하기

1. Settings.settings에 새로운 설정 항목 추가하기

  • 프로젝트의 솔루션 탐색기에서 '속성'을 더블 클릭합니다.
  • 설정 탭을 선택합니다.
  • 새로운 설정 항목을 추가합니다. 예: 이름을 SerializedClass로, 형식을 String로 설정합니다.

2. 클래스를 문자열로 직렬화하고 Settings.settings에 저장하기

using System.IO;
using System.Xml.Serialization;

public class MyClass
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public string SerializeObjectToXml<T>(T objectToSerialize)
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
    StringWriter textWriter = new StringWriter();

    xmlSerializer.Serialize(textWriter, objectToSerialize);
    return textWriter.ToString();
}

MyClass myInstance = new MyClass { Name = "John", Age = 30 };
string serializedClass = SerializeObjectToXml(myInstance);
Properties.Settings.Default.SerializedClass = serializedClass;
Properties.Settings.Default.Save();

3. Settings.settings에서 문자열을 불러와 클래스로 역직렬화하기

public T DeserializeXmlToObject<T>(string xmlString)
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
    StringReader textReader = new StringReader(xmlString);
    return (T)xmlSerializer.Deserialize(textReader);
}

string savedSerializedClass = Properties.Settings.Default.SerializedClass;
MyClass loadedInstance = DeserializeXmlToObject<MyClass>(savedSerializedClass);

이 방법을 사용하면 다양한 클래스의 인스턴스를 쉽게 저장하고 불러올 수 있습니다. 

각 프로젝트의 요구 사항에 따라 직렬화 및 역직렬화 방식을 선택하여 사용하시면 됩니다.