因此,在我的程序中,我使用 COM Auotmation(Silverlight 4 中的 AutomationFactory)来创建一个 FileSystemObject,我在其中写入一个字符串(theContent)。本例中的 theContent 是一个小的 UTF-8 XML 文件,我使用 MemoryStream 将其序列化为字符串。
该字符串很好,但由于某种原因,每当我调用 FileSystemObject 的 Write 方法时,我都会收到错误“HRESULT 0x800A0005(来自 Google 的 CTL_E_ILLEGALFUNCTIONCALL)”。最奇怪的是,如果我传递另一个简单的字符串,比如“hello”,它就可以正常工作。
有任何想法吗?
或者,如果有一种方法可以使用 FileSystemObject 公开文件/文本流,我可以直接对其进行序列化,那也很好(我似乎在 VB 中找不到任何东西)。
提前致谢!
string theContent = System.Text.Encoding.UTF8.GetString(content, 0, content.Length);
string hello = "hello";
using (dynamic fsoCom = AutomationFactory.CreateObject("Scripting.FileSystemObject"))
{
dynamic file = fsoCom.CreateTextFile("file.xml", true);
file.Write(theContent);
file.Write(hello);
file.Close();
}