c# - 为 Web 服务创建 XML 字符串

标签 c# asp.net xml web-services

我正在向 Web 服务发送请求,该请求需要包含 XML 的字符串,我已为其提供 XSD。

我已经运行了 xsd.exe 并基于此创建了一个类,但不确定创建要发送的 xml 字符串的最佳方法,例如流、XMLDocument 或某种形式的序列化。

更新

我找到了这个 here

 public static string XmlSerialize(object o)
    {
        using (var stringWriter = new StringWriter())
        {
            var settings = new XmlWriterSettings
            {
                Encoding = Encoding.GetEncoding(1252),
                OmitXmlDeclaration = true
            };
            using (var writer = XmlWriter.Create(stringWriter, settings))
            {
                var xmlSerializer = new XmlSerializer(o.GetType());
                xmlSerializer.Serialize(writer, o);
            }
            return stringWriter.ToString();
        }
    }

这让我可以控制标签属性。

最佳答案

我在多个场合所做的是创建一个类/结构来保存客户端程序中的数据并将数据序列化为字符串。然后我发出 Web 请求并将该 XML 字符串发送给它。下面是我用来将对象序列化为 XML 的代码:

public static string SerializeToString(object o)
{
    string serialized = "";
    System.Text.StringBuilder sb = new System.Text.StringBuilder();

    //Serialize to memory stream
    System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(o.GetType());
    System.IO.TextWriter w = new System.IO.StringWriter(sb);
    ser.Serialize(w, o);
    w.Close();

    //Read to string
    serialized = sb.ToString();
    return serialized;
}

只要对象的所有内容都是可序列化的,它就会序列化任何对象。

关于c# - 为 Web 服务创建 XML 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118761/

相关文章:

c# - 有 .net 的 Css 编写器吗?

c# - 获取通用的自定义属性

c# - 为什么 Resharper 无法识别我的网络引用?

javascript - 客户端 XSLT 转换其他人的 XML

xml - 用于修改 JetBrains 项目中 .idea 文件夹中 XML 的命令行工具

c# - .net 4.0 中引用类型的 volatile

html - 如何使整个div成为超链接

c# - 在桌面应用程序中呈现 ASP.NET 控件?

ASP.NET - 构建您自己的路由系统

python - 在 XML 声明 python 中编码