2012-08-14 121 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])