2010-07-03 3 views
4

웹에서 찾은 모든 직렬화 예제는 배열 또는 파일에 저장하는 것과 관련이 있습니다. 객체의 각 클래스는 ".bin"과 같이 자신의 파일로 직렬화되어야합니다. 내 문제의 근원은 내 제품에 대한 정보를 로컬에 저장하고 싶지만 SQL을 사용하는 데 익숙하다. 정보를 로컬에 저장하는 방법을 시각화하는 것은 어렵습니다. C#이 ASP와 비슷하다면 Access 데이터베이스에 연결할 수 있어야하지만, 사용자가 읽을 수없는 직렬화 아이디어 중 하나를 거의 무효로 만듭니다. 테이블과 필드를 사용하는 것과 비슷한 직렬화 방법이 있습니까? 아니면 최소한 하나의 파일에 모든 사용자 정보를 저장할 수 있습니까?데이터베이스와 비슷한 직렬화 방법이 있습니까?

답변

1

로컬로 직렬화되어 저장되는 ADO.NET DataSet을 사용할 수 있습니다. 그것은 익숙한 모든 데이터 구조를 포함 할 것이고 원하는대로 데이터를 쿼리 할 수있게 해주 며 이진 시리얼 라이저로 직렬화하면 최종 사용자가 읽을 수 없게됩니다.

또한 DataSet을 사용하는 대신 SQLite를 사용할 수 있습니다.

SQLite는이 가 자체 포함, 서버없는, 제로 구성, 트랜잭션 SQL 데이터베이스 엔진을 구현하는 소프트웨어 라이브러리입니다. SQLite는 전 세계에서 가장 널리 배포 된 SQL 데이터베이스 엔진입니다. SQLite 소스 코드 은 (는) 에 있습니다.

SQLite로 NHibernate는 훌륭한 조합입니다.

건배.

1

NHibernate을 확인하십시오. 그러면 '데이터베이스와 같은'스토리지가 생깁니다.

인간의 가독성을 고려한다면 XML을 사용하여 개체를 직렬화하는 것이 좋습니다. .NET은 XML 및 바이너리 형식을 사용하여 객체를 직렬화 (및 비 직렬화) 할 수있는 적절한 지원을 제공합니다.

C#에서 직렬화 학습을 위해 사용한 자습서는 this CodeProject article입니다.

업데이트 : 나는 당신이 만든 한 점 오해

: 직렬화 반드시 사람이 읽을 수있는 여부를 의미하지 않는다 - 당신이 직렬화하기로 결정하는 경우는 데이터를 읽을 여부를 원하는 경우, 파악을. 이진 직렬화는보다 작고 읽기 어려울 수 있습니다.

+0

그는 직렬화의 이점 중 하나는 ** 읽기 쉽지 않음을 언급합니다. –

+0

직렬화가 데이터를 읽을 수 있는지 여부를 나타내는 것은 아닙니다. 인간이 읽을 수 있고 읽을 수없는 직렬화 기술을 사용했습니다. OP가 직렬화 된 데이터를 보호해야하는 경우 암호화 또는 적어도 기본적인 난독 화를 사용해야합니다. –

관련 문제