문제

많은 컬렉션이 메모리에로드 된 수업이 있습니다. 나중에 메모리에 단순히 다시로드 할 수 있도록 모든 데이터를 파일에 저장하는 방법이 가능합니까? 이 모든 것을 처리 할 인터페이스가 있습니까?

도움이 되었습니까?

해결책

당신이 묘사하는 것을 불립니다 직렬화. 디스크에 저장할 수있는 일부 데이터 형식으로 객체를 searialize 후 나중에 해당 데이터를 객체로 사로화 할 수 있습니다. 이 작업을 수행하는 방법에는 여러 가지가 있지만 첫 번째 단계는 직렬화 가능한 속성을 추가하여 클래스 직렬화를 가능하게하는 것입니다.

[Serializable]
public class YourClass
{    
    // the class goes here
}

그런 다음 예를 들어 사용할 수 있습니다 XmlSerializer 직렬화/사제화를 처리하는 클래스.

업데이트
나는 당신이 사용할 수 있다고 언급해야합니다 XmlSerializer 당신의 수업으로 장식되지 않더라도 Serializable 기인하다. 그러나 일부 다른 직렬화 메커니즘에는 속성이 필요합니다.

다른 팁

사용 Binaryformatter 인스턴스를 직렬화합니다

클래스 정의 앞에서 [Serializable] 속성을 추가하십시오.

.NET 직렬화 기능을 사용할 수 있습니다. [Serializable] 속성으로 클래스를 표시해야하며 모든 구성원도 직렬화 가능해야합니다.

샘플 코드 :

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;
}
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top