C#实现实体类和XML相互转换
发布时间 - 2026-01-11 00:02:32 点击率:次一、实体类转换成XML

将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化
public static string XmlSerialize<T>(T obj)
{
using (StringWriter sw = new StringWriter())
{
Type t= obj.GetType();
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(sw, obj);
sw.Close();
return sw.ToString();
}
}
示例:
1、定义实体类
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public class Request
{
public string System { get; set; }
public string SecurityCode { get; set; }
public PatientBasicInfo PatientInfo { get; set; }
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class PatientBasicInfo
{
public string PatientNo { get; set; }
public string PatientName { get; set; }
public string Phoneticize { get; set; }
public string Sex { get; set; }
public string Birth { get; set; }
public string BirthPlace { get; set; }
public string Country { get; set; }
public string Nation { get; set; }
public string IDNumber { get; set; }
public string SecurityNo { get; set; }
public string Workunits { get; set; }
public string Address { get; set; }
public string ZIPCode { get; set; }
public string Phone { get; set; }
public string ContactPerson { get; set; }
public string ContactShip { get; set; }
public string ContactPersonAdd { get; set; }
public string ContactPersonPhone { get; set; }
public string OperationCode { get; set; }
public string OperationName { get; set; }
public string OperationTime { get; set; }
public string CardNo { get; set; }
public string ChangeType { get; set; }
}
2、给实体类赋值,并通过序列化将实体类转换成XML格式的字符串
Request patientIn = new Request(); patientIn.System = "HIS"; patientIn.SecurityCode = "HIS5"; PatientBasicInfo basicInfo = new PatientBasicInfo(); basicInfo.PatientNo = "1234"; basicInfo.PatientName = "测试"; basicInfo.Phoneticize = ""; basicInfo.Sex = "1"; basicInfo.Birth = ""; basicInfo.BirthPlace = ""; basicInfo.Country = ""; basicInfo.Nation = ""; basicInfo.IDNumber = ""; basicInfo.SecurityNo = ""; basicInfo.Workunits = ""; basicInfo.Address = ""; basicInfo.ZIPCode = ""; basicInfo.Phone = ""; basicInfo.ContactShip = ""; basicInfo.ContactPersonPhone = ""; basicInfo.ContactPersonAdd = ""; basicInfo.ContactPerson = ""; basicInfo.ChangeType = ""; basicInfo.CardNo = ""; basicInfo.OperationCode = ""; basicInfo.OperationName = ""; basicInfo.OperationTime = ""; patientIn.PatientInfo = basicInfo; //序列化 string strxml = XmlSerializeHelper.XmlSerialize<Request>(patientIn);
3、生成的XML实例
<?xml version="1.0" encoding="utf-16"?> <Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <System>HIS</System> <SecurityCode>HIS5</SecurityCode> <PatientInfo> <PatientNo>1234</PatientNo> <PatientName>测试</PatientName> <Phoneticize /> <Sex>1</Sex> <Birth /> <BirthPlace /> <Country /> <Nation /> <IDNumber /> <SecurityNo /> <Workunits /> <Address /> <ZIPCode /> <Phone /> <ContactPerson /> <ContactShip /> <ContactPersonAdd /> <ContactPersonPhone /> <OperationCode /> <OperationName /> <OperationTime /> <CardNo /> <ChangeType /> </PatientInfo> </Request>
二、将XML转换成实体类
把XML转换成相应的实体类,需要使用到XmlSerializer类的Deserialize方法,将XML进行反序列化。
public static T DESerializer<T>(string strXML) where T:class
{
try
{
using (StringReader sr = new StringReader(strXML))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return serializer.Deserialize(sr) as T;
}
}
catch (Exception ex)
{
return null;
}
}
示例:
将上例中序列化后的XML反序列化成实体类
//反序列化 Request r = XmlSerializeHelper.DESerializer<Request>(strxml);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# C#
# XML转换成实体类
# C#实体类转换成XML
# C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
# C#实现实体类和XML的相互转换
# 转换成
# 实体类
# 序列化
# 大家多多
# AnonymousType
# true
# XmlRootAttribute
# false
# IsNullable
# Namespace
# System
# color
# XmlTypeAttribute
# Serialization
# Xml
# PatientName
# PatientNo
# partial
# Birth
# Sex
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Swift开发中switch语句值绑定模式
英语简历制作免费网站推荐,如何将简历翻译成英文?
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
Laravel如何自定义分页视图?(Pagination示例)
微信小程序 闭包写法详细介绍
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何快速使用云服务器搭建个人网站?
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel Fortify是什么,和Jetstream有什么关系
动图在线制作网站有哪些,滑动动图图集怎么做?
高防服务器租用首荐平台,企业级优惠套餐快速部署
Bootstrap整体框架之JavaScript插件架构
JavaScript如何实现错误处理_try...catch如何捕获异常?
bootstrap日历插件datetimepicker使用方法
Laravel如何使用Livewire构建动态组件?(入门代码)
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
微信小程序 canvas开发实例及注意事项
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
如何在IIS7中新建站点?详细步骤解析
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
如何撰写建站申请书?关键要点有哪些?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
在线教育网站制作平台,山西立德教育官网?
Python数据仓库与ETL构建实战_Airflow调度流程详解
晋江文学城电脑版官网 晋江文学城网页版直接进入
如何用美橙互联一键搭建多站合一网站?
魔方云NAT建站如何实现端口转发?
Laravel怎么判断请求类型_Laravel Request isMethod用法
简单实现Android验证码
网站建设整体流程解析,建站其实很容易!
Python文件操作最佳实践_稳定性说明【指导】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何自定义建站之星网站的导航菜单样式?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
网易LOFTER官网链接 老福特网页版登录地址
Swift中switch语句区间和元组模式匹配
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
上一篇:139邮箱手机登录入口官网
下一篇:yii2禁用bootstrap库
上一篇:139邮箱手机登录入口官网
下一篇:yii2禁用bootstrap库

