C#将对象转换成xml字符串

c# xml 2215 2215
所属源码: Code4Dotnet
sam 2022-03-29 00:41:46

概述

如何将一个对象转换成xml。

封装一个静态函数

        /// <summary>
        /// 一个泛型对象转换成xml
        /// </summary>
        /// <param name="obj">对象</param>
        /// <returns></returns>
        public static string ObjectToXml<T>(T obj)
        {
            if (obj == null)
            {
                return "";
            }

            using (MemoryStream stream = new MemoryStream())
            {
                XmlSerializer xml = new XmlSerializer(obj.GetType());
                xml.Serialize(stream, obj);
                stream.Position = 0;
                StreamReader sr = new StreamReader(stream);
                string str = sr.ReadToEnd();
                return str;
            }
        }

将一个用户对象转换成xml

            User user = new User();
            user.Name = "Test";

            string xml = AdfXml.ObjectToXml(user);

            Console.WriteLine(xml);

结果

<?xml version="1.0"?>
<User xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ID>0</ID>
  <Name>Test</Name>
  <Sex>未知</Sex>
  <RoleID>0</RoleID>
  <DepartmentID>0</DepartmentID>
  <Online>false</Online>
  <Enable>false</Enable>
  <Logins>0</Logins>
  <LastLogin>0001-01-01T00:00:00</LastLogin>
  <RegisterTime>0001-01-01T00:00:00</RegisterTime>
  <Ex1>0</Ex1>
  <Ex2>0</Ex2>
  <Ex3>0</Ex3>
  <UpdateUserID>0</UpdateUserID>
  <UpdateTime>0001-01-01T00:00:00</UpdateTime>
</User>

一个包含子类的xml序列化

            List<CodeFunc> lstCodeFuncs = new List<CodeFunc>
            {
                new CodeFunc(){FuncName = "SetNewName",ReturnType = "string"},
                new CodeFunc(){FuncName = "AddEntity",ReturnType = "string"},
                new CodeFunc(){FuncName = "ModifyEntity",ReturnType = "string"},
            };

            CodeEntity codeEntity = new CodeEntity();
            codeEntity.Name = "用户管理";
            codeEntity.Code = "1122";
            codeEntity.FuncList = lstCodeFuncs;

            string xml = AdfXml.ObjectToXml(codeEntity);

            Console.WriteLine(xml);

结果

<?xml version="1.0"?>
<CodeEntity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Code>1122</Code>
  <Name>用户管理</Name>
  <FuncList>
    <CodeFunc>
      <FuncName>SetNewName</FuncName>
      <ReturnType>string</ReturnType>
    </CodeFunc>
    <CodeFunc>
      <FuncName>AddEntity</FuncName>
      <ReturnType>string</ReturnType>
    </CodeFunc>
    <CodeFunc>
      <FuncName>ModifyEntity</FuncName>
      <ReturnType>string</ReturnType>
    </CodeFunc>
  </FuncList>
</CodeEntity>


回帖
  • 消灭零回复
相关文章