XML反序列化出错,XML 文档(2, 2)中有错误
XML转换为实体类的错误处理方案
一.错误描述:
- XML反序列化出错,XML 文档(2, 2)中有错误
二.解决方案:
- 在实体类的字段要加上XmlElement属性
三.具体实现:
1.XML文档
<EVENT_INSTANCE>
<EventType>ALTER_TABLE</EventType>
<PostTime>2015-08-04T10:21:14.670</PostTime>
<SPID>175</SPID>
<ServerName>E6SER14</ServerName>
<LoginName>sa</LoginName>
<UserName>dbo</UserName>
<DatabaseName>E6ETms</DatabaseName>
<SchemaName>ETms</SchemaName>
<ObjectName>Driver</ObjectName>
<ObjectType>TABLE</ObjectType>
<AlterTableActionList>
<Drop>
<Constraints>
<Name>DF_Driver_DriverID</Name>
</Constraints>
</Drop>
</AlterTableActionList>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON" ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON" ENCRYPTED="FALSE" />
<CommandText>ALTER TABLE ETms.Driver
DROP CONSTRAINT DF_Driver_DriverID
</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>
2.目标实体对象
[XmlRoot(ElementName = "EVENT_INSTANCE")]
[Serializable]
public class EventModel
{
[XmlElement(ElementName = "EventType")]
public string EventType { set; get; }
[XmlElement(ElementName = "PostTime")]
public string PostTime { set; get; }
[XmlElement(ElementName = "SPID")]
public string Spid { set; get; }
[XmlElement(ElementName = "ServerName")]
public string ServerName { set; get; }
[XmlElement(ElementName = "UserName")]
public string UserName { set; get; }
[XmlElement(ElementName = "DatabaseName")]
public string DatabaseName { set; get; }
[XmlElement(ElementName = "SchemaName")]
public string SchemaName { set; get; }
[XmlElement(ElementName = "ObjectName")]
public string ObjectName { set; get; }
[XmlElement(ElementName = "ObjectType")]
public string ObjectType { set; get; }
[XmlElement(ElementName = "TargetObjectName")]
public string TargetObjectName { set; get; }
[XmlElement(ElementName = "TargetObjectType")]
public string TargetObjectType { set; get; }
[XmlElement(ElementName = "PropertyName")]
public string PropertyName { set; get; }
[XmlElement(ElementName = "PropertyValue")]
public string PropertyValue { set; get; }
[XmlElement(ElementName = "Parameters")]
public Parameters Parameters { get; set; }
[XmlElement(ElementName = "TSQLCommand")]
public TsqlCommand TsqlCommand { get; set; }
}
public class TsqlCommand
{
[XmlElement(ElementName = "CommandText")]
public string CommandText { set; get; }
[XmlElement(ElementName = "SetOptions")]
public string SetOptions { set; get; }
}
public class Parameters
{
[XmlElement("Param")]
public List<string> ParamContent { get; set; }
}
3.XML转实体类测试
//xmlStr 是xml字符串 ;type是要转换目标实体的类型 【typeof (EventModel)】;
public static object DeserializeFromXml(string xmlStr, Type type)
{
try
{
using (StringReader sr = new StringReader(xmlStr))
{
XmlSerializer xs = new XmlSerializer(type);
return xs.Deserialize(sr);
}
}
catch (Exception ex)
{
throw (ex);
}
}
XML反序列化出错,XML 文档(2, 2)中有错误的更多相关文章
- 关于"XML 文档(2, 2)中有错误:不应有 <xml xmlns=''>"错误
XML文件名 <?xml version="1.0" encoding="utf-8"?> <Config xmlns:xsi="h ...
- c# Net XML文档(2,2)中有错误
错误如图所示: xml转实体,需求很简单,度娘找了几个方法试了下,转换代码仔细看了看 没毛病啊 但是 就是提示 XML文档(2,2)中有错误,百度搜索了一大会 没解决方案,仔细分析了一下, 最后发现 ...
- XML 文档(1, 2)中有错误:不应有 <xml xmlns=''>
症状 用XmlSerializer进行xml反序列化的时候,程序报错: 不应有 <xml xmlns=''>. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息, ...
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
Oracle 远程访问配置 服务端配置 如果不想自己写,可以通过 Net Manager 来配置. 以下配置文件中的 localhost 改为 ip 地址,否则,远程不能访问. 1.网络监听配置 ...
- xml和xsd架构文档相关知识
1.使用架构(XSD)验证XML文件 2.使用自动生成工具: 工具目录:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4. ...
- poi 读取使用 Strict Open XML 保存的 excel 文档
poi 读取使用 Strict Open XML 保存的 excel 文档 某项目有一个功能需要读取 excel 报表内容,使用poi读取时报错: 具体错误为: org.apache.poi.POIX ...
- Mongodb:修改文档结构后出现错误:Element '***' does not match any field or property of class ***.
Mongodb:修改文档结构后出现错误:Element '***' does not match any field or property of class ***. Mongodb是一种面向文档的 ...
- WebAPI使用多个xml文件生成帮助文档
一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet.WebApi.HelpPage)可以根据注释生成帮助文档,查看代码实现会发现是基于解析项目生成的xm ...
随机推荐
- EBS 取消“是否提交另一项请求”提示
在使用EBS提交请求后,总要弹出“是否提交另一项请求”的提示,而我们往往选择“否”,这个提示就显得多余. 为了减轻这“多一步”的负担,取消“是否提交另一项请求”的提示,设置方法如下: 以下profil ...
- PhantomJS快速入门-无界面浏览器
https://blog.csdn.net/libsyc/article/details/78199850 PhantomJS快速入门 本文简要介绍了PhantomJS的相关基础知识点,主要包括Pha ...
- 在.net中使用ETW事件的方法
直到.net4.5,才有了比较便利的操作ETW的方法. 本文介绍的方法主要来源于Microsoft.Diagnostics.Tracing.TraceEvent官方资料库. 准备 (1)需要用到类:M ...
- 第21件事 资源支持离不开RACI表
十步法的第九步寻求资源支持.资源主要包括人力资源.物力资源和财力资源.人力资源,即需要多少人:物力资源,即需要多少软硬件设备:财力资源,即需要多少预算.根据产品或项目目标,资源估算时要考虑需要什么样的 ...
- php file_get_contents fopen 连接远程文件
使用file_get_contents和fopen必须空间开启allow_url_fopen. 方法: 编辑php.ini,设置allow_url_fopen =true On,allow_url_f ...
- 动态生成html元素并为元素追加属性
动态生成HTML元素的方法有三种: 第一种:document.createElement()创建元素,再用appendChild( )方法将元素添加到指定节点 <!DOCTYPE html> ...
- ASP.NET判断是否为手机登录
protected void Page_Load(object sender, EventArgs e) { MobileHandle(); } 页面加载时候判断是否为手机登录 protected v ...
- sublime text syntaxdef
http://sublimetext.info/docs/en/extensibility/syntaxdefs.html
- AWD比赛常规套路
作者:Leafer 本文属于Arctic shell原创内容计划文章,转载请注明原文地址! 比赛环境:纯净win10,最新版kali,securecrt或者WinSCP 在进入服务器后应进行的常规 ...
- postgresql-清空shared_buffers
清空os缓存,shared_buffers 1.停止数据库 pg_ctl -m fast -D /pgdata stop 2.清空高速缓存前尝试将数据刷新至磁盘 sync 3.清空缓存 echo 3 ...