Что вы подразумеваете под "HEX, а не ASCII"? Строка HEX обычно представляет собой строку в кодировке ASCII, состоящую только из символов [0-9A-F].
Вот метод расширения C #, который преобразует байтовые массивы в строки шестнадцатеричных пар, представляющих байты исходного байтового массива:
using System;
using System.Linq;
using System.Text;
namespace Substitute.With.Your.Project.Namespace.Extensions
{
static public class ByteUtil
{
/// <summary>
/// byte[] to hex string
/// </summary>
/// <param name="self"></param>
/// <returns>a string of hex digit pairs representing this byte[]</returns>
static public string ToHexString(this byte[] self)
{
return self
.AsEnumerable()
.Aggregate(
new StringBuilder(),
(sb, value)
=> sb.Append(
string.Format("{0:X2}", value)
)
).ToString();
}
}
}
Тогда в другом месте вы просто use
расширение
using Substitute.With.Your.Project.Namespace.Extensions;
и назовите это так
aByteArray.ToHexString();
(код не проверен; YMMW)