我想混淆二进制数组byte[]
中的某些二进制或文本数据,我能够完成转换为所需的字符串的操作,但是XmlSerializer
的输出包含了额外的信息。是否可以使用其他序列化程序来转换我的数据而无需附加XML标签?如果以后需要反序列化,则将包含必要的标签。
byte[] baTest = new byte[256];
for (int i = 0; i < 256; i++)
baTest[i] = (byte) (i & 0xff);
string MyTestString = ReadableXMLBinary(baTest);
MessageBox.Show("My String is:\n" + MyTestString);
static public string ReadableXMLBinary(byte[] baIn)
{
StringWriter s = new StringWriter();
XmlSerializer xser = new XmlSerializer(typeof( byte[]));
xser.Serialize(s, baIn);
return s.ToString();
}
哪个输出:
<?xml version="1.0" encoding="utf-16"?><base64Binary>AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==</base64Binary>"
基本上,我希望<base64Binary>
标签之间的所有内容。
我知道我可以毫不费力地剥离文本,但我认为可能有人提出了一种干净的解决方案。
答案 0 :(得分:1)
您似乎根本不需要XML?
如果是这种情况,请使用:
SELECT
OBJECT_NAME(f.parent_object_id) TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) ColName
FROM
sys.foreign_keys AS f
INNER JOIN
sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN
sys.tables t ON t.OBJECT_ID = fc.referenced_object_id
WHERE
OBJECT_NAME (f.referenced_object_id) = 'YourTableName'
并转换回:
string s = Convert.ToBase64String(baIn);