Попытайтесь удалить 0x
первый и затем звоните Encoding.UTF8.GetString
. Я думаю, что это может работать.
По существу: 0x44004500
Удаляет 0x, и затем всегда два байта являются одним символом:
44 00 = D
45 00 = E
6F 00 = o
72 00 = r
, Таким образом, это - определенно формат Unicode/UTF с двумя байтами/символами.
Минусы:
Плюсы:
Определенно существуют ситуации, когда статика является подходящим решением, как и в любом приложении. Каждый раз, когда у вас есть какой-либо объект, который должен находиться в области действия приложения, а не в области запроса, он должен быть статическим, и вы должны использовать статические методы для доступа к нему и управления им.
В качестве примера, вот фрагмент кода Я недавно написал для приложения ASP.NET, который по сути является кешем сериализатора. Сериализаторы дорого создавать, и мы можем повторно использовать один и тот же для каждого типа, пока существует наше приложение, поэтому нет необходимости тратить время на каждый поток запроса для них:
( Примечание: это имеет были сокращены, чтобы продемонстрировать статические аспекты)
public class XmlSerializerUtility
{
private static Dictionary<Type, XmlSerializer> serializers = new Dictionary<Type, XmlSerializer>();
private static object sync = new object();
public static T Deserialize<T>(string input)
{
XmlSerializer xs = GetSerializer(typeof(T));
using (StringReader sr = new StringReader(input))
{
return (T)xs.Deserialize(sr);
}
}
public static XmlDocument Serialize(object input)
{
XmlDocument doc = new XmlDocument();
XmlSerializer xs = GetSerializer(input.GetType());
using (MemoryStream stream = new MemoryStream())
{
xs.Serialize(stream, input);
stream.Position = 0;
doc.Load(stream);
}
return doc;
}
private static XmlSerializer GetSerializer(Type type)
{
lock (sync)
{
XmlSerializer xs = null;
if (!serializers.ContainsKey(type))
{
xs = new XmlSerializer(type);
serializers.Add(type, xs);
}
else
{
xs = serializers[type];
}
return xs;
}
}
}
Я считаю, что лучше всего преобразовать ваше беззнаковое число в подписанное (перед сравнением). Скорее, чем наоборот.
Пользователи метода должны связываться с конкретным методом и не могут связываться с абстракцией, что делает подделку или насмешку трудной, если не невозможной.Однако это может быть или не быть проблемой, в зависимости от кода.
Еще одна вещь, на которую следует обратить внимание, - это универсальность статических данных для всех запросов к серверу.