2013-04-29 3 views
3

개체를 저장하기 위해 직렬화를 사용하는 Visual Basic.net 응용 프로그램을 개발했습니다. 열고이 개체를 두 개의 다른 Visual Basic.net 응용 프로그램에 저장하고 싶습니다.두 응용 프로그램 간의 직렬화

가장 좋은 방법은 무엇입니까? 이 작업을 수행하려면 클래스 라이브러리를 만들어야합니까?

이 문제에 대해 도움을받을 수 있습니까?

내가 열고 두 응용 프로그램에서 개체를 저장 할 수 있도록 걸려

편집 할 수 있습니다.

답변

0

데이터의 복잡도에 따라 데이터 클래스를 <Serializable> 속성으로 간단히 표시 할 수 있어야합니다. 한 응용 프로그램에서 Serialize 메서드를 호출하고 디스크에 저장 한 다음 다른 응용 프로그램으로 파일을 읽고 Deserialize을 호출 할 수 있습니다.

두 응용 프로그램 모두에서 클래스를 정의해야합니다. 공통 라이브러리를 공유하여 가장 쉽게 수행 할 수 있습니다.

basic serialization에 대한 MDSN 예를 참조하십시오.

+0

두 번째 응용 프로그램에서 직렬화 된 개체를 열려고하면 다음 오류가 발생합니다. 'TestSerializationSaveOpenObjectProject2, Version = 1.0.0.0, 문화 = 중립, PublicKeyToken = null '. – user2230606

0

xml을 읽고 쓸 수 있습니다. 그러면 다른 파일에서 저장 한 폴더를 확인하여 새 파일이 생성 또는 업데이트되었는지 확인해야합니다.

기능은 객체를 직렬화하고 내가이 작업을 수행 할 수있는 쉬운 방법이 있었으면 좋겠어

Public Function GetMyObjFromXMLFile() As MyObj 

    'check if file exists first... 

    If xmlFileExists() Then 



     Dim strPath As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase) 



     Dim objStreamReader As New StreamReader(Replace(strPath & "\MyFolder\MyObj.xml", "file:\", "")) 

     Dim MyObj As New MyObject 
     Dim x As New XmlSerializer(MyObj.GetType) 
     MyObj = x.Deserialize(objStreamReader) 
     objStreamReader.Close() 

     Return MyObj 


    Else 
     Return New MyObj 

    End If 


End Function 
0

을 반대하는 XML에 XML 및 역 직렬화를 읽을 수

Public Function MyObjectFileGeneration() 
    Try 
     Dim strPath As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase) 

     strPath = Replace(strPath, "file:\", "") 

     Dim myObj = Form1.MyObject 



     Dim objStreamWriter As New StreamWriter(strPath & "\MyFolder\MyObj.xml", False) 

     Dim x As New XmlSerializer(s.GetType) 
     x.Serialize(objStreamWriter, MyObj) 

     objStreamWriter.Close() 

     Return True 

    Catch ex As Exception 
     'Do something here if failure... 
     Return False 

    End Try 
End Function 

함수를 작성 , 불행히도이 벽에도 충돌했습니다.

일련 번호가 가능한 데이터는 r 같은 응용 프로그램에서 읽습니다. (당신이에 대한 사랑스러운 오류 메시지를 제공합니다.) 내가 실패, 단순화 된 패킷 전송을위한 직렬 연결을 사용하여 시도 ..

당신이 프로그램에 얼마나 잘에 따라, 나는

.. 이것에 대한 추천이

변수를 memorystream에 직렬화 한 다음 헤더 섹션을 잘라내 다른 파일 스트림으로 이동 한 다음 다시로드하면 memorystream에 변수를 저장하여 새 헤더를 얻은 다음 나머지 데이터를 첨부 한 다음 직렬화를 읽습니다 ..

아직 시도하지 않았지만 다시 돌아올 때 이것은 내 다음 방법입니다.

가 나는 XML 방법을 볼 수 있지만, 데이터를 안전하게 유지하기 위해 압축/암호화 라이브러리를 사용하는 것이 좋습니다했다 .. 아마도 그렇게 할 수있는 몇 가지 간단한 방법을 참조 않았다 ..

죄송합니다, 나는에 코드가없는 이 라운드는 조사 할 때이 응답을 추가합니다.

관련 문제