如何将复杂的C#类序列化为XML并将其作为来自.net core API的响应进行发送?

问题描述 投票:0回答:1

我已经在c#中创建了一个对象(复杂对象),我希望通过XML从API发送响应。如何将值设置为复杂节点并以适当的XML序列化。

下面是我的代码。

  1. 我要转换的C#对象

    [XmlRoot][可序列化]公共课回应{私人Response headerField;

    private Response bodyField;
    
    /// <remarks/>
    public Response Header
    {
        get
        {
            return this.headerField;
        }
        set
        {
            this.headerField = value;
        }
    }
    
    /// <remarks/>
    public Response Body
    {
        get
        {
            return this.bodyField;
        }
        set
        {
            this.bodyField = value;
        }
    }
    

    }

    公共类标题{公共字符串ACCT_NUM {get;组; }公用字符串NIC {get;组; }公共字符串requestId {get;组; }公共字符串BankId {get;组; }}

    公共类机构{公开字串STATUS {get;组; }公共正文错误{get;组; }}

    公共类错误{公用字符串ERRORCODE {get;组; }

    /// <remarks/>
    public string ERRORDESC { get; set; }
    
    /// <remarks/>
    public string ERRORTYPE { get; set; }
    

    }

  2. 通过序列化代码,我将值设置为字段并发送。

    using(var stream = new MemoryStream()){XmlSerializer xmlSer = newXmlSerializer(typeof(Response)); xmlSer.Serialize(stream,new Response(){Header =,Body = body,}); stream.Position = 0; using(var reader = newStreamReader(stream,Encoding.UTF8)){string value = reader.ReadToEnd();}}

请在这里指导我如何实现以XML序列化对象并将其作为API的响应发送。

c# xml asp.net-core-webapi xmlserializer
1个回答
0
投票

您可以尝试这个

public string ObjectToXML()
    {
        using(var stringwriter = new System.IO.StringWriter())
        { 
            var serializer = new XmlSerializer(this.GetType());
            serializer.Serialize(stringwriter, this);
            return stringwriter.ToString();
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.