从web服务以字符串形式 返回要尊重的C#

本文关键字:返回 服务 web 字符串 | 更新日期: 2023-09-27 18:35:12

我有一个消息系统,它是一个.NET 2 ASMX web服务,非常基本的系统。我推送消息,希望消息中有换行符,以便在接收端格式化。例如,我想发送一个字符串,例如:"你好,我的名字是…",并让它有两个换行符。当接收器读取文本时,它实际上是在输出文本中的。我如何才能将这些解释为用C#编写的?或''t等

谢谢。

从web服务以字符串形式
返回要尊重的C#

您应该使用Environment.NewLine编写消息,以插入用于表示系统上换行的字符。

参见此处获取参考

然而,使用Environment.NewLine有一些问题
例如,您的消息应该以这种方式编写

string msg = "Hello" + Environment.NewLine + Environment.NewLine + "My Name Is...";

从程序员的角度来看,使用起来有点麻烦。

然后,您可以为字符串类编写一个扩展方法,该方法接受您的消息,并在占位符的位置插入Environment.NewLine字符。

本例使用|(管道(字符作为换行位置的占位符

public static string InsertLineBreaks(this string inMsg)
{
    Strinbuilder sb = new StringBuilder(inMsg);
    sb.Replace("|", Environment.NewLine);
    return sb.ToString();
}

你可以用这种方式称这个分机为

string msg = "Hello||My Name Is...".InsertLineBreaks();

web服务可能会将消息发回,回车列为"%0D"。我在我的程序中所做的是使用:

str.Replace("%0D", Environment.NewLine);

这似乎对我有用。

我相信你也可以使用:

str.Replace("%0D", "'n");

您必须将'n替换为浏览器解释为新行的内容,即<br/>。我想您正在将它用作HTML字符串。

此外,您需要确保它不是HtmlEncoded,即您的<br/>没有转换为&lt;br/&gt;。如果使用JSON序列化,则不应该发生这种情况。但如果您将其序列化为XML,并且在客户端没有正确解码,则会发生这种情况。

使用此:

string returnString = "Hello" + Environment.NewLine+ "My Name Is..";