【发布时间】:2014-12-04 08:00:30
【问题描述】:
我有一个在 Progress 4GL 中开发的简单 web 服务,我从中接收到一个带有 blob 的数据集作为输出参数,我在其中存储了一个 pdf 文件。
DEFINE TEMP-TABLE TTDocument NO-UNDO
FIELD DocSeqNr AS INT
FIELD FileName AS CHAR
FIELD EventCode AS CHAR
FIELD EventDescr AS CHAR
FIELD FileContent AS BLOB
.
DEFINE DATASET ds FOR TTDocument.
DEFINE INPUT PARAMETER pCoCd AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pLanCd AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pUsrCd AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pFilter AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER DATASET FOR ds.
DEFINE OUTPUT PARAMETER pErrorTxt AS CHARACTER NO-UNDO.
在 .Net 中,我向此 Web 服务发出请求,并按如下方式处理响应:
XmlElement doc;
DataSet xxx = new DataSet();
beaHostDB.GetDocumets(pCoCd, lanCd, pUsrCd,idAdd, out doc, out pErrorTxt);
XmlElementToXmlDocment(doc);
var reader = new StringReader(doc.InnerXml);
xxx.ReadXml(reader);
foreach (DataRow dr in xxx.Tables[0].Rows)
{
DcumentList.Add(new Document { FileContent =dr["FileContent"].ToString});
}
所以现在我有了一个带有这个 pdf 文件的二进制表示的字符串。
如何将此字符串转换为 bytes[] 以在 c# 中获取此 pdf 文件?
【问题讨论】:
-
XML 响应中的文件是如何编码的?有一些方法可以将字符串转换为字节[],例如 Convert.FromBase64String
标签: c# blob progress-4gl openedge