Если я хочу быстро отладить сервис, я просто заглядываю Debugger.Break()
там. Когда та строка будет достигнута, она будет ронять меня к VS. Не забывайте удалять ту строку, когда Вы будете сделаны.
ОБНОВЛЕНИЕ: Как альтернатива #if DEBUG
прагмы, можно также использовать Conditional("DEBUG_SERVICE")
атрибут.
[Conditional("DEBUG_SERVICE")]
private static void DebugMode()
{
Debugger.Break();
}
На Вашем OnStart
, просто назовите этот метод:
public override void OnStart()
{
DebugMode();
/* ... do the rest */
}
Там, код будет только включен во время сборок Отладки. В то время как Ваш в нем, могло бы быть полезно создать отдельную Конфигурацию сборки для сервисной отладки.
Как насчет чего-то вроде этого:
public String applyCaesar(String text, int shift)
{
char[] chars = text.toCharArray();
for (int i=0; i < text.length(); i++)
{
char c = chars[i];
if (c >= 32 && c <= 127)
{
// Change base to make life easier, and use an
// int explicitly to avoid worrying... cast later
int x = c - 32;
x = (x + shift) % 96;
if (x < 0)
x += 96; //java modulo can lead to negative values!
chars[i] = (char) (x + 32);
}
}
return new String(chars);
}
По общему признанию, это рассматривает 127 как неконтролирующий символ, что не является ... вы можете настроить его, чтобы сохранить диапазон как [ 32, 126].
Сопоставьте свои символы от [32..127] до [0..95], выполните mod 95 + 1
и сопоставьте результат обратно с [32..127].
Обычно зашифрованный текст имеет кодировку base64, base16 (шестнадцатеричный) также работает хорошо. Base64 чаще всего используется для зашифрованного текста, потому что он занимает меньше места, чем шестнадцатеричный, шестнадцатеричный чаще всего используется для дайджеста сообщений. В библиотеке java.util.prefs.Base64 вы найдете byteArrayToBase64 () и base64ToByteArray ().
Кстати, вы НИКОГДА не должны писать свой собственный алгоритм шифрования по соображениям безопасности, вы должны использовать блочный или потоковый шифр. Надеюсь, это для развлечения!
там! Есть ли способ рассмотреть весь спектр персонажей? Например, «á», «é», «ö», «ñ», а не рассматривать «» ([Пробел])? (Например, моя строка - «Hello World», а стандартный результат - «Khoor # Zruog»; я хочу стереть этот «#», поэтому результатом будет «KhoorZruog»)
Я уверен, что мой ответ находится в этом фрагменте кода:
if (c >= 32 && c <= 127)
{
// Change base to make life easier, and use an
// int explicitly to avoid worrying... cast later
int x = c - 32;
x = (x + shift) % 96;
chars[i] = (char) (x + 32);
}
... Но я пробовал кое-что, и ничего не вышло: S Итак, я буду ждать ваших ответов: D Увидимся!