세 부분으로 구성된 질문.C에서 직렬화를 사용하여 사용자 정의 파일 저장 및 열기 #
나는 어제 중첩 클래스에 대해 물어 보았습니다. (그런데 큰 도움이되었습니다.) 그러나 이제는 MDI를 사용하여 여러 일반 상점과 해당 인벤토리를 추적하여 사용자 지정 .inv 파일에서 열 때마다 인스턴스화되는 동일한 프로그램을 계속 사용하고 있습니다. 이를 위해, Store 클래스와 Record 클래스는 상기 커스텀 파일에 저장하기 위해 직렬화 가능하다.
나는 그것이 무엇인지 모르지만, 나는 단지 직렬화를 이해하지 못한다. 나는 그 개념을 충분히 이해하고 있으며, 단지 연습이 아니므로 인내심을 요청합니다.
파트 1) .inv 파일 확장명을 사용하여 파일에 저장 한 내용을 저장하도록 설계된 원래 형식의 saveFileDialog를 만들었습니다. 자, 문제는 정확히 나중에 파일을 열 수있는 방법으로 저장하기 위해 인스턴스화 된 클래스를 전달하는 것입니까?
2 부) openFileDialog의 경우 두 부분으로 구성됩니다.
첫째, 위에 저장 한 후 어떻게 정보를 읽습니까? 즉, 모든 값을 저장하기 위해 이름이 변경된 파일 확장명을 가진 텍스트 문서를 사용하여 저장 이름과 레코드를 한 번에 하나씩 읽을 수 있다고 생각했지만, 필자는 직렬화뿐만 아니라 필요도 모르기 때문에 그것이 좋은 생각인지 아닌지 나는 모른다.
둘째, 내가 열려고하는 인스턴스를 인스턴스화하는 방법은 무엇입니까? 클래스의 인스턴스 하나를 만드는 것만 큼 간단하며 새 문서를 열 때마다 모든 것을 지우고 열린 파일의 값을 추가하거나 그보다 더 복잡합니까?
클래스에 대한 코드는 아래에 있습니다.이 코드는 내가 저장하려고하는 것에 대한 아이디어를 줄 것입니다. 다른 코드가 필요하면 알려주십시오.
using System.Text;
using System.Threading.Tasks;
namespace Inventory
{
[Serializable]
class Store
{
public Store() { }
public Store(string name) { }
public string name { get; set; }
public List<Record> Records { get; private set; }
}
[Serializable]
class Record
{
public Record() { }
public Record(int ID, int Quantity, double Price, string Name) { }
public int id { get; set; }
public int quantity { get; set; }
public double price { get; set; }
public string name { get; set; }
}
}