0

将来の参照のために FileSystemWatcher オブジェクトを sqlite データベースに保存したいのですが、オブジェクトのシリアル化で次の例外が発生します

「アセンブリ 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' の Type 'System.IO.FileSystemWatcher' は、シリアル化可能としてマークされていません。」

ここにコードがあります

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

よろしくお願いします、 ハセナ

4

1 に答える 1

0

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);
}
于 2013-08-05T09:09:28.793 に答える