2012-08-14 123 views

回答

3

你有3種選擇:

  1. 使用toString()方法,以便將MacroEvent導出到一個格式化文本。您可能需要重寫默認實現。請務必提供您需要的所有信息,否則您將無法在稍後檢索它們。讀取和解析文件然後需要加載數據。

  2. 使用內建的.net XML序列化功能。寫/讀操作很簡單。

    http://msdn.microsoft.com/en-us/library/ms950721.aspx

    http://support.microsoft.com/kb/815813

  3. 如果不使用另一應用程序的數據計劃,爲什麼不使用BinarySerializer?到目前爲止,最好的方法,但結果文件不會是文本格式。

    http://www.codeproject.com/Articles/1789/Object-Serialization-using-C

+0

BinarySerializer是完美的。謝謝! – user1410644 2012-08-14 14:19:57

0

如果MacroEvent有一個ToString()方法可用,您可以簡單地遍歷列表並打印到您的文本文件。

0
TextWriter tw = new StreamWriter("myFile.txt"); 
foreach (MacroEvent item in events) 
{ 
    tw.WriteLine(item.ToString()); 
} 
tw.Close(); 
+0

我已經有這樣的嘗試,但它不工作。 我在文本文件中只顯示「GlobalMacroRecorder.MacroEvent」。 感謝您的答案:) – user1410644 2012-08-14 13:30:20

0

我會建議使用擴展方法。我對MacroEvent一無所知,我不打算從代碼項目中下載代碼,只是爲了看一看,但這裏是它的樣子。

public static class MacroEventExtensions 
{ 
    public static void WriteToFile(this List<MacroEvent> events, string path) 
    { 
     StringBuilder fileContents = new StringBuilder(); 
     foreach (var e in events) 
     { 
      fileContents.AppendLine("{0}::{1}", 
       [some event id from the object], 
       [some event message from the object]); 
     } 

     File.WriteAllText(path, fileContents.ToString()); 
    } 
} 

然後在上面的代碼中,您只要致電:

events.WriteToFile([some path])