加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为Web Service创建XML字符串

发布时间:2020-12-16 01:41:34 所属栏目:百科 来源:网络整理
导读:我正在向一个Web服务发送请求,该服务需要一个包含 XML的字符串,我已经提供了一个XSD. 我已经运行了xsd.exe并基于此创建了一个类,但不确定创建要发送的xml字符串的最佳方法,例如流,XMLDocument或某种形式的序列化. UPDATE 我发现这个here public static strin
我正在向一个Web服务发送请求,该服务需要一个包含 XML的字符串,我已经提供了一个XSD.

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

UPDATE

我发现这个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;
}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读