0
У меня есть два метода XmlWriter и XmlReader.
У меня есть байт [], называемый Thumbprint. В писателе я конвертирую его из байта [] в строку и записываю в свой Xml-файл. Это работает. Мне нужно выяснить, как прочитать его обратно из строки и преобразовать обратно в байт [].
Вот мой код до сих пор:строка в байт [] преобразование с использованием XmlWriter и XmlReader
public void WriteXml(XmlWriter writer)
{
writer.WriteStartElement("agent");
writer.WriteStartElement("thumbprint");
var encoding = new UnicodeEncoding();
if (Thumbprint != null)
{
string base64 = System.Convert.ToBase64String(encoding.GetBytes(Thumbprint.ToString()));
writer.WriteCData(base64);
}
else
{
writer.WriteEndElement();
}
}
public void ReadXml(XmlReader reader)
{
if (reader.IsStartElement("agent"))
{
//
// Read past <agent>
//
reader.Read();
while (true)
{
if (reader.IsStartElement("thumbprint"))
{
byte[] toDecodeByte = System.Convert.FromBase64String(Thumbprint.ToString());
Thumbprint = toDecodeByte;
}
else
{
//
// Read </agent>
//
reader.MoveToContent();
reader.ReadEndElement();
break;
}
}
}
else
{
throw new XmlException("Expected <agent> element was not present");
}
}
Xml Вход:
<thumbprint>
<![CDATA[UwB5AHMAdABlAG0ALgBCAHkAdABlAFsAXQA=]]>
</thumbprint>
Можем ли мы увидеть пример вашего XML-файла (ввод)? –
Несомненно. Я добавил фрагмент Xml в OP. До сих пор я пытался использовать этот пример здесь: http://stackoverflow.com/questions/17835928/write-xml-in-base64-encoding, но я не могу заставить его работать. Я также пробовал по-другому, но это тоже не работает. Если вы посмотрите на метод чтения в OP, я также обновил то, что я пробовал. – Tim