使用Visual Studio在控制台应用程序中输入和输出奇怪的XML修改

时间:2011-01-18 09:07:51

标签: c# xml visual-studio console

我有一个简单的控制台应用程序,使用VisualStudio在c#中创建。它有一个输入参数并将其返回到输出。 这是代码:

    static void Main(string[] args)
    {
        string msg = args[0];            
        Console.WriteLine(msg);
    }

然后我尝试将包含xml的param作为字符串传递:"<messages><message>message</message></messages>"。如果我使用控制台来调用应用程序,没有任何错误。但是在我尝试调试此类应用程序的情况下,我在 Debug 选项卡上的命令行参数中添加了参数字符串。

alt text  在此之后我得到了意想不到的输出:

 ^<messages^>^<message^>message^</message^>^</messages^>

为什么我们有这样的输出以及如何克服这个问题?提前谢谢。


这个问题最简单的解决方案应该是替换不愿意的字符,如:

static void Main(string [] args) {     string msg = args [0];
    Console.WriteLine(msg.Replace( “^”, “”); }

但是这种行为的原因放在了操作系统的核心位置。 Windows处理这种情况,例如从命令行使用参数启动批处理文件。根据@Artem K答案中提供的链接,您可以发现这是克服这种情况的两种方法。不幸的是,没有人解决这个问题。可能,因为Visual Studio在如何传递args以启动批处理的问题中添加了自己的东西。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

壳牌中的

,&lt;和&gt;具有特殊意义,有助于蒸汽重定向.. 是什么让dir / w&gt; myDirectory.txt可能或树|更多等等......

关注@Artem Koshelev帖子以解决这个问题。