將 Office 文檔等二進制文件編碼為 XML,通過 Web Service、.NET Remoting、Socket 等跨平台傳輸。XML 的平台無關性使異構系統(如 .NET 服務端 + Java 客戶端)交互成為可能。
FileStream inFile = new FileStream(strFileName, FileMode.Open, FileAccess.Read);
byte[] binaryData = new byte[inFile.Length];
inFile.Read(binaryData, 0, (int)inFile.Length);
string base64Str = Convert.ToBase64String(binaryData);
// 包裝為簡單 XML
string xmlStr = string.Format(" ", base64Str);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStr);
xmlDoc.Save(savePath);
XmlNode node = xmlDoc.DocumentElement.SelectSingleNode("me");
XmlElement elem = (XmlElement)node;
string base64Str = elem.GetAttribute("aa");
byte[] bytes = Convert.FromBase64String(base64Str);
FileStream outFile = new FileStream(savePath, FileMode.CreateNew);
outFile.Write(bytes, 0, bytes.Length);
XmlDocument 實例分別持有編碼/解碼數據OpenFileDialog/SaveFileDialog 選擇路徑| 層面 | 建議 |
|---|---|
| 傳輸協議 | 優先基於文檔的交互(如 MSMQ、JMQ),避免 RPC 強耦合 |
| 大文件處理 | 分塊傳輸、流式 Base64、或改用 MTOM (Message Transmission Optimization Mechanism) |
| 安全性 | 傳輸層加密 (TLS),敏感數據加密後再 Base64 |
XmlDocument 全量載入內存,超大文件改用 XmlReader/Writer 流式處理