Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为Web服务创建XML字符串_C#_Asp.net_Xml_Web Services - Fatal编程技术网

C# 为Web服务创建XML字符串

C# 为Web服务创建XML字符串,c#,asp.net,xml,web-services,C#,Asp.net,Xml,Web Services,我正在向一个web服务发送一个请求,该服务需要一个包含XML的字符串,我已经给出了一个XSD 我已经运行了xsd.exe并基于此创建了一个类,但不确定创建要发送的xml字符串的最佳方法,例如流、XMLDocument或某种形式的序列化 更新 我找到了这个 它允许我控制标记属性。使用框架生成xml字符串。希望这有帮助 我在一些场合所做的是创建一个类/结构来保存客户端程序上的数据,并将数据序列化为字符串。然后我发出web请求并发送XML字符串。以下是我用来将对象序列化为XML的代码: public

我正在向一个web服务发送一个请求,该服务需要一个包含XML的字符串,我已经给出了一个XSD

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

更新

我找到了这个


它允许我控制标记属性。

使用框架生成xml字符串。希望这有帮助

我在一些场合所做的是创建一个类/结构来保存客户端程序上的数据,并将数据序列化为字符串。然后我发出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;
}

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

以下是我以前所做的:

    private static string CreateXMLString(object o)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(object));
        var stringBuilder = new StringBuilder();
        using (var writer = XmlWriter.Create(stringBuilder))
        {
            serializer.Serialize(writer, o);
        }
        return stringBuilder.ToString();
    }

谢谢,迈克,这符合我的预期。
    private static string CreateXMLString(object o)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(object));
        var stringBuilder = new StringBuilder();
        using (var writer = XmlWriter.Create(stringBuilder))
        {
            serializer.Serialize(writer, o);
        }
        return stringBuilder.ToString();
    }