У меня есть простое консольное приложение, созданное в c # с использованием VisualStudio.Он имеет входной параметр и возвращает его на выход.Это код:
static void Main(string[] args)
{
string msg = args[0];
Console.WriteLine(msg);
}
Затем я пытаюсь передать параметр, содержащий xml, в виде строки: "<messages><message>message</message></messages>"
.В этом нет ничего плохого, если я буду использовать консоль для вызова приложения.Но в случае, когда я пытаюсь отладить такое приложение, я добавил строку параметра в Аргументы командной строки на вкладке Отладка .
После этого у меня естьполучил неожиданный вывод вроде:
^<messages^>^<message^>message^</message^>^</messages^>
Почему у нас такой вывод и как его преодолеть?Заранее спасибо.
Самое простое решение этой проблемы - заменить нежелательные символы, как здесь:
static void Main (string [] args) {string msg = args [0];
Console.WriteLine (msg.Replace ("^", "");}
Но причина такого поведения заложена где-то в ядре операционной системы. Windows справляется с такой ситуацией, как запускпакетный файл из командной строки с параметрами. Перейдя по ссылке, представленной в ответе @Artem K., вы можете узнать, что существует два способа преодоления такой ситуации. К сожалению, никто не работает с этой проблемой. Возможно, потому что Visual Studioдобавьте что-нибудь от себя в вопросе, как передать аргументы для запуска пакета.