瀏覽代碼

remove temp file from open subtitles

Luke Pulverenti 9 年之前
父節點
當前提交
0bf4d35f53
共有 1 個文件被更改,包括 31 次插入33 次删除
  1. 31 33
      OpenSubtitlesHandler/XML-RPC/XmlRpcGenerator.cs

+ 31 - 33
OpenSubtitlesHandler/XML-RPC/XmlRpcGenerator.cs

@@ -51,47 +51,45 @@ namespace XmlRpcHandler
             XmlWriterSettings sett = new XmlWriterSettings();
             sett.Indent = true;
 
-            var requestXmlPath = Path.Combine(Path.GetTempPath(), "request.xml");
-
             sett.Encoding = Encoding.UTF8;
-            FileStream str = new FileStream(requestXmlPath, FileMode.Create, FileAccess.Write);
 
-            XmlWriter XMLwrt = XmlWriter.Create(str, sett);
-            // Let's write the methods
-            foreach (XmlRpcMethodCall method in methods)
+            using (var ms = new MemoryStream())
             {
-                XMLwrt.WriteStartElement("methodCall");//methodCall
-                XMLwrt.WriteStartElement("methodName");//methodName
-                XMLwrt.WriteString(method.Name);
-                XMLwrt.WriteEndElement();//methodName
-                XMLwrt.WriteStartElement("params");//params
-                // Write values
-                foreach (IXmlRpcValue p in method.Parameters)
+                XmlWriter XMLwrt = XmlWriter.Create(ms, sett);
+                // Let's write the methods
+                foreach (XmlRpcMethodCall method in methods)
                 {
-                    XMLwrt.WriteStartElement("param");//param
-                    if (p is XmlRpcValueBasic)
-                    {
-                        WriteBasicValue(XMLwrt, (XmlRpcValueBasic)p);
-                    }
-                    else if (p is XmlRpcValueStruct)
+                    XMLwrt.WriteStartElement("methodCall");//methodCall
+                    XMLwrt.WriteStartElement("methodName");//methodName
+                    XMLwrt.WriteString(method.Name);
+                    XMLwrt.WriteEndElement();//methodName
+                    XMLwrt.WriteStartElement("params");//params
+                                                       // Write values
+                    foreach (IXmlRpcValue p in method.Parameters)
                     {
-                        WriteStructValue(XMLwrt, (XmlRpcValueStruct)p);
-                    }
-                    else if (p is XmlRpcValueArray)
-                    {
-                        WriteArrayValue(XMLwrt, (XmlRpcValueArray)p);
+                        XMLwrt.WriteStartElement("param");//param
+                        if (p is XmlRpcValueBasic)
+                        {
+                            WriteBasicValue(XMLwrt, (XmlRpcValueBasic)p);
+                        }
+                        else if (p is XmlRpcValueStruct)
+                        {
+                            WriteStructValue(XMLwrt, (XmlRpcValueStruct)p);
+                        }
+                        else if (p is XmlRpcValueArray)
+                        {
+                            WriteArrayValue(XMLwrt, (XmlRpcValueArray)p);
+                        }
+                        XMLwrt.WriteEndElement();//param
                     }
-                    XMLwrt.WriteEndElement();//param
-                }
 
-                XMLwrt.WriteEndElement();//params
-                XMLwrt.WriteEndElement();//methodCall
+                    XMLwrt.WriteEndElement();//params
+                    XMLwrt.WriteEndElement();//methodCall
+                }
+                XMLwrt.Flush();
+                XMLwrt.Close();
+                return ms.ToArray();
             }
-            XMLwrt.Flush();
-            XMLwrt.Close();
-            str.Close();
-            string requestContent = File.ReadAllText(requestXmlPath);
-            return Encoding.UTF8.GetBytes(requestContent);
         }
         /// <summary>
         /// Decode response then return the values