【发布时间】:2020-12-16 01:09:38
【问题描述】:
我需要将大的XElement 转换为字节数组,以便以后可以将其上传到文件共享。调用的正确方法是什么?
下面是内部方法fileShare.PutFile 的签名:
void PutFile(string folder, string fileName, byte[] content);
然后给定一个XElement xml,我尝试通过使用Encoding.Default.GetBytes() 对其XElement.Value 进行编码,将其转换为字节数组,如下所示:
byte[] bytes = Encoding.Default.GetBytes(xml.Value);
fileShare.PutFile(folderName, blobName, bytes);
我不太确定 xml.Value (XElement.Value) 是否真的是 GetBytes 方法真正需要的。这是正确的吗?
为了测试这一点,我启动了一个控制台应用程序并输入了一些虚假数据。我为 XElement 做了这个:
XElement root = new XElement("Root",
new XElement("Child1", 1),
new XElement("Child2", 2),
new XElement("Child3", 3),
new XElement("Child4", 4),
new XElement("Child5", 5),
new XElement("Child6", 6)
);
然后我尝试将那行代码放入字节数组
byte[] bytes = Encoding.Default.GetBytes(root.Value);
好吧,我想我忘记了,当我走过去看到 Autos 时,字节变量是 btye[6],当我展开时 - 我看到 [0] = 49 等等
现在这可能并不意味着它不起作用......或者它是否意味着?如何解读bytes数组的内容,检查是否正确?
【问题讨论】:
-
这个问题你可以自己回答...
xml.Value中的字符串是你要发送的信息吗? -
嗯 - XElement 的 Value 的定义是一个包含它所有文本的字符串。我真的知道 XElement 会将属性正确写入 Azure - 我不知道,因为我以前从未使用过它。它深入到目前无法测试的工作流程中 - 所以除非 SO 上的人知道,否则我需要使用控制台应用程序来解决这个问题
-
不幸的是这个问题已经变成了。 “我需要做点什么,但我需要知道它是否有效。” 你需要更明确一点。您到底想从 XML 元素中得到什么,您需要确保通过网络发送什么。您实际调用的是什么 azure 方法,您希望该调用的结果是什么。此外,如果您不能自己为此编写一个小测试,那么您似乎遇到了更大的问题。如果你能弄清楚其中的一些点,我相信有人可以帮助你
-
@TheGeneral 我创建了一个控制台应用程序,并在我的问题底部放置了一个更新。再次感谢
标签: c# arrays xml character-encoding xelement