????????????????????????д???????????ò??????????????????????????ò???????????????о????????
??????????????????????????????????????飬???????????????????????????????????????????????????????????????????????????????????“??????д???”??“??????????”??????????????????????????е???????????????????????????bug????????????潲???????????????????????????á?
????????????????????????????????????????????????д??????????????????????????????????????????£???????????????Vistual Studio?У?????????????????????????????????????????NUnit?????????????????????"Microsoft.VisualStudio.QualityTools.UnitTestFramework"????ok??????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????Assembly???????£?
????[assembly: InternalsVisibleTo("Projky.UnitTests")]
??????????????????????????????internal???η??????????????????????????
??????????????????????“30d9132169211a45”????“30-D9-13-21-69-21-1A-45”????“30 D9 13 21 69 21 1A 45”??????16?????????????Byte[]???顣????????ByteString?????????????
internal class ByteString {
public static Byte[] ConverterToBytes(string value) {
if (value.IndexOf("-") > -1) {
value = value.Replace("-"?? "");
} else if (value.IndexOf(" ") > -1) {
value = value.Replace(" "?? "");
}
Debug.Assert(value.Length % 2 == 0?? "Invalid byte string length.");
List<Byte> list = new List<Byte>(value.Length / 2);
for (int i = 0; i < value.Length; i += 2) {
int bHi = GetInteger(value[i]);
int bLow = GetInteger(value[i + 1]);
Byte temp = (Byte)(bHi << 4 | bLow);
list.Add(temp);
}
return list.ToArray();
}
static int GetInteger(char ch) {
if (Char.IsDigit(ch)) {
return ch - '0';
}
int value = 10;
switch (ch) {
case 'a':
case 'A':
value = 10;
break;
case 'b':
case 'B':
value = 11;
break;
case 'c':
case 'C':
value = 12;
break;
case 'd':
case 'D':
value = 13;
break;
case 'e':
case 'E':
value = 14;
break;
case 'f':
case 'F':
value = 15;
break;
default:
throw new NotSupportedException(ch.ToString() + " is not valid char.");
}
return value;
}
}