지금은 직렬화하고 디스크에 저장하려는 여러 클래스가 있습니다. 형식은 중요하지 않습니다. 그러나 실제로 저장할 필요가있는 것은 각각의 선택 필드입니다. 이 필드는 클래스에 따라 다르지만 모두 공개입니다. 내 접근임의의 클래스 저장 및 직렬화
public class A {
public string stringField;
public int intField;
...
}
public class B {
public float floatField;
public Object objectField;
...
}
저장하고이 분야를 직렬화뿐만 아니라 각 클래스에 대한 저장 public 필드와 클래스의 인스턴스를 반환하도록로드 할 수있는 간단한 컨테이너 클래스를 가지고 있었다.
저장하려는 클래스의 필드와 일치하는 필드를 가진 클래스를 만들어서이 작업을 수행 할 수 있습니다.
public class AStorage{
public string stringFieldStorage;
public int intFieldStorage;
...
public void StoreA(A a){
stringFieldStorage = a.stringField;
intFieldStorage = a.intField;
}
public A GetA(){
A a = new A();
a.stringField = stringFieldStorage;
a.intField = intFieldStorage;
return a;
}
}
이 작동하지만 내가 수업을 많이 필요로하고 내가 그들에게 자신이 저장하고있는 클래스에서 수신 할 내용에 따라 필드를 제공 할 필요가 있다는 것을 의미합니다.
저는 리플렉션을 사용하여 필드와 이름을 파악하는 방법을 살펴 보았습니다. 그런 다음 필드 이름으로 입력 한 Dictonary<string, Object>
에 입력 한 다음 참조 할 수 있습니다. 그러나, 그것은 나에게 조금 칙칙한 느낌과 내가 잘못한 일을하고 있는지 궁금해하고있다. 클래스를 저장하고 직렬화하는 데 실제로 시도한 방법은 무엇입니까?
직렬화는 .NET Framework에서 잘 해결되는 문제입니다. 왜 자신 만의 솔루션을 만들고 싶습니까? –