2013-08-05 1 views
0
내가 나중에 참조 할 수 SQLite는 데이터베이스에있는 FileSystemWatcher 구성 객체를 저장할

하지만 총회 '시스템, 버전 = 2.0에서 객체를직렬화은 FileSystemWatcher 개체

"형'System.IO.FileSystemWatcher '직렬화에 다음과 같은 예외를 받고 .0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 '은 (는) 직렬화 가능으로 표시되어 있지 않습니다. "

여기에 코드를

  MemoryStream memorystream = new MemoryStream(); 
      BinaryFormatter bf = new BinaryFormatter(); 
      bf.Serialize(memorystream, FSWatcher); 
      byte[] yourBytesToDb = memorystream.ToArray(); 

감사와 안부입니다 Haseena

+0

. 그 말은, 나는 여기서 정말로 질문을하지 않는다 ...? –

+0

그래서 오류는 정확한 문제가 무엇인지 알려줍니다. 왜 db 컬럼에 속성을 저장하지 않습니까? 왜 전체 객체를 직렬화해야합니까? –

+0

'FSWatcher'가 직렬화 할 수 없기 때문에 문제가 발생합니다. 귀하의 질문은 무엇인가? – Jodrell

답변

0

사용하면`FileSystemWatcher` 기간을 직렬화 할 수없는 의미 XML 한

public static void SaveAsXML(Object A, string FileName) 
{ 
    var serializer = new XmlSerializer(A.GetType()); 
    using (var textWriter = new StreamWriter(FileName)) 
    { 
     serializer.Serialize(textWriter, A); 
     textWriter.Close(); 
    } 
} 

public static T LoadFromXML<T>(string FileName) where T : class 
{ 
    if (File.Exists(FileName)) 
    { 
     using (var textReader = new StreamReader(FileName)) 
     { 
      var deserializer = new XmlSerializer(typeof(T)); 
      return (T)(deserializer.Deserialize(textReader)); 
     } 
    } 
    return default(T); 
} 
+0

시도해 보셨습니까? 이것은 직렬화 가능으로 표시되어 있지 않기 때문에 작동하지 않아야합니다! – derape

+0

[SerializableAttribute] (http://msdn.microsoft.com/en-us/library/system.serializableattribute%28v=vs.100%29.aspx)는 이진 직렬화에서 중요합니다! XML 직렬화가 완전히 작동합니다. – Venson

+0

SaveAsXML 메서드를 사용하여 아래 예외가 발생했습니다. 'System.IO.FileSystemWatcher'형식을 반영하는 오류가 발생했습니다. –