많은 컬렉션이 메모리에로드 된 클래스가 있습니다. 이 클래스를 모든 데이터와 함께 파일에 저장하여 나중에 메모리에 다시로드하는 것이 가능합니까? 이 모든 것을 처리 할 수있는 인터페이스가 있습니까?C#에서 임의의 데이터를 파일에 저장할 수 있습니까?
1
A
답변
4
앞에있는 [직렬화] 속성을 추가 할 수 있습니다. 개체를 디스크에 저장할 수있는 데이터 형식으로 검색 한 다음 나중에 해당 데이터를 개체로 deserialize 할 수 있습니다. 이이 일을 여러 가지 방법이 있지만 첫 번째 단계는 직렬화 속성을 추가하여, 클래스가 직렬화 수 있도록하는 것입니다 :
[Serializable]
public class YourClass
{
// the class goes here
}
이 그럼 당신은 직렬화/역 직렬화를 처리하기 위해 인스턴스의 XmlSerializer
클래스를 사용할 수 있습니다.
업데이트
나는 당신의 클래스가 Serializable
속성으로 장식되지 않은 경우에도 당신이 XmlSerializer
를 사용할 수 있음을 언급해야한다. 그러나 일부 다른 직렬화 메커니즘에는이 속성이 필요합니다.
1
사용 BinaryFormatter 인스턴스
를 직렬화 및 직렬화라고 당신이 설명하는 클래스 정의
0
당신은 당신이 [직렬화] 속성을 가진 클래스를 표시해야 닷넷 직렬화 기능을 사용 할 수 있으며 모든 구성원이
가샘플 코드도 직렬화해야한다 : 사전
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class A
{
public static void Serialize(object obj,string filepath)
{
Formatter f = new BinaryFormatter();
f.Serialize(new FileStream(filepath,FileMode.Create),obj);
}
public static A Deserialize(string filepath)
{
Formatter f = new BinaryFormatter();
return f.Deserialize(new FileStream(filepath, FileMode.Open)) as A;
}
}
XML 직렬화가 가장 쉬운 일! –