2017-02-07 47 views
0

我想在Xamarin打開一個Word文檔表格PCL利用Syncfusion例如下面的代碼:誤差的HTTPRequest和DocIO

using System.Net; 
using System; 
using System.IO; 
using Syncfusion.DocIO.DLS; 
using Syncfusion.DocIO; 

public void CreateWordDoc() 
{ 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://valufy.file.core.windows.net/valufyfiles/ValufyReportWordTemplate.docx"); 
HttpWebResponse response = await (HttpWebResponse)request.GetResponse(); <----- FIRST ERROR HERE 
Stream stream = response.GetResponseStream(); 
//Converts it to byte array 
byte[] buffer = ReadFully(stream, 32768); 
//Stores bytes into the memory stream. 
MemoryStream ms = new MemoryStream(); 
ms.Write(buffer, 0, buffer.Length); 
ms.Seek(0, SeekOrigin.Begin); 
stream.Close(); 
//Creates a new document. 
WordDocument document = new WordDocument(); 
//Opens the template document from the MemoryStream. 
document.Open(ms, FormatType.Doc); 
//Saves and closes the document 
document.Save("Sample.docx", FormatType.Docx); <---- SECOND ERROR HERE 
document.Close(); 
} 

我收到以下錯誤:

  1. ErrorCS1061'HttpWebRequest'不包含'GetResponse'的定義,並且沒有找到接受第一個 參數類型'HttpWebRequest'的擴展方法'GetResponse'可以找到(你是否缺少使用指令的 或sembly 參考)ValufyC:\ Users \用戶sreesun \ OneDrive \項目\ 2Valufy \ 2Valufy_2Valufy \數據\ Export.cs20Active
  2. ErrorCS1503Argument 1:不能從 '字串' 轉換爲「System.IO.Stream'ValufyC:\用戶\ sreesun \ OneDrive \項目\ 2Valufy \ 2Valufy_2Valufy \ DATA \ Export.cs48Active

任何建議將是有益的。 GetResponse()方法是HttpWebRequest類的公共方法,我無法弄清楚它爲什麼會出錯。

回答

2

錯誤1:

「的HttpWebRequest」不包含關於「的GetResponse」的定義和沒有擴展方法「的GetResponse」接受類型「的HttpWebRequest」的第一個參數可以找到(是否缺少使用指令或裝配參考?)

建議: GetResponse()在DocIO PCL版本中不受支持。所以,我們建議您使用GetResponseAsync()來獲得HttpWebRequest的響應。

注意:在嘗試使用給定的URI string獲得響應時,由於URI字符串無效,我們遇到了一些錯誤。所以請使用適當的URI字符串連續創建Web請求和響應。

我們懷疑這個錯誤與DocIO便攜式庫不相關。

錯誤2:

參數1:無法從 '串' 到 'System.IO.Stream'

建議轉換: 在Xamarin平臺基本DocIO不提供任何公共API直接在保存方法中指定文件名。這是造成上述問題的原因(「無法從'字符串'轉換爲'System.IO.Stream')

或者,您可以使用」保存「方法和」流「重載來保存Word文檔。

請參考我們的UG documentation以瞭解更多關於加載並在Xamarin平臺中使用DocIO便攜式庫保存Word文檔。