public class Program
{
static void Main(string[] args)
{
var alarm = new Alarm()
{
Code = "1588-OPER-2",
Grade = "",
Source = "55A3E6C7E2A0560A956D3933F42E5AA2",
Time = DateTime.Now,
Text = "Operationnal state is offline."
}; var alarm1 = new Alarm()
{
Code = "1588-OPER-2",
Grade = "",
Source = "55A3E6C7E2A0560A956D3933F42E5AA2",
Time = DateTime.Now,
Text = "Operationnal state is offline."
}; var alarms = new AlarmSet("wxboss.srm.alarm", new List<Alarm> { alarm, alarm1 }); var alarmFile = new AlarmCatalog();
alarmFile.Alarms = new List<AlarmSet> { alarms }; Generate(alarmFile); } public static void Generate(AlarmCatalog file)
{
string path = "C:\\test.xml"; Stream stream = new FileStream(path, FileMode.Create); var serializer = new XmlSerializer(typeof(AlarmCatalog));
serializer.Serialize(stream, file); stream.Close();
} [XmlRoot("dc")]
public class AlarmCatalog
{
[XmlElement("mo")]
public List<AlarmSet> Alarms { get; set; }
} public class AlarmSet
{
#region Initialization
public AlarmSet()
{ } public AlarmSet(string domain)
{
this.Domain = domain;
} public AlarmSet(string domain, List<Alarm> items)
{
this.Domain = domain;
this.Items = items;
}
#endregion [XmlAttribute("dn")]
public string Domain { get; set; } [XmlElement("alarm")]
public List<Alarm> Items { get; set; }
} public class Alarm
{
public Alarm() { } public Alarm(string text)
{
this.Text = text;
} [XmlAttribute("source")]
public string Source { get; set; } [XmlAttribute("grade")]
public string Grade { get; set; } [XmlAttribute("code")]
public string Code { get; set; } [XmlIgnore]
public DateTime Time { get; set; } [XmlAttribute("time")]
public string TimeString
{
get { return this.Time.ToString("yyyy-MM-dd HH:mm:ss"); }
set { this.Time = DateTime.Parse(value); }
} [XmlText]
public string Text { get; set; }
}
}
<?xml version="1.0"?><dc xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<mo dn="wxboss.srm.alarm">
  <alarm time="2013-09-04 11:33:01" code="1588-OPER-2" grade="1" source="55A3E6C7E2A0560A956D3933F42E5AA2">Operationnal state is offline.</alarm>
  <alarm time="2013-09-04 11:33:01" code="1588-OPER-2" grade="2" source="55A3E6C7E2A0560A956D3933F42E5AA2">Operationnal state is offline.</alarm>
</mo> </dc>

XmlElement可以避免由XmlSerializer多余生成的代码的更多相关文章

  1. axis2生成客户端代码

    通过aix2生成客户端代码需要准备相应的包,然后执行命令,步骤如下: 一.所需包准备 下载axis2-1.6.2-bin.zip,解压从lib包中取出 jaxrpc.jar wsdl4j-1.6.2. ...

  2. MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码

    前言 经过前面EF的<第一篇>与<第二篇>,我们的数据层功能已经较为完善了,但有不少代码相似度较高,比如负责实体映射的 EntityConfiguration,负责仓储操作的I ...

  3. [Dynamic Language] 用Sphinx自动生成python代码注释文档

    用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...

  4. Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询

    Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询     SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL ...

  5. 用soapUI生成客户端代码

    一.用soapUI生成客户端代码 方法一: 1.第一步,打开soapUI,菜单栏里的tools,选择apache CXF,如图, 2.第二步,WSDL:写上你连接服务端的地址,OutputDirect ...

  6. 使用greenDAO生成DAO代码

    研究greenDAO有几天了,刚开始看别人的博客基本都把我带到了沟里,讲gradle把简单的问题搞得非常复杂,而且都是抄来抄去,看来看去也就那么几篇,实在看不下去了,只得硬着头皮自己琢磨,好在终于把这 ...

  7. python 自动生成C++代码 (代码生成器)

    python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...

  8. 技巧分享——如何去除多余的CSS代码?

    有时候,当你的CSS代码过多的时候,而且已经明确知道有部分CSS代码是多余的: 这时候,有什么较快的办法可以去除多余的CSS呢?? 下面分享一个实用技巧: 1.使用谷歌浏览器:Chrome .下载 2 ...

  9. myBatis自动生成相关代码文件配置(Maven)

    pom.xml文件添加配置 <build> <finalName>generator</finalName> <plugins> <!-- mav ...

随机推荐

  1. POJ 1989

    #include <iostream> #define MAXN 10005 using namespace std; bool mark[MAXN]; int main() { //fr ...

  2. ExtJs布局之Column

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  3. SQL语句AND 和 OR执行的优先级

    例句: ) FROM RT_CUSTALLOCRESULT WHERE REGDATE BETWEEN '2014-03-01' AND '2014-03-31' ) FROM RT_CUSTALLO ...

  4. MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-2]

    引入Spring 修改 pox.xml 文件 添加jar包引用 <!-- spring3 --> <dependency> <groupId>org.springf ...

  5. 传入sql数组字符串,输出table

    CREATE function [dbo].[split](@aString varchar(),@pattern varchar()) returns @temp table([Sid] [, ) ...

  6. 凌乱的yyy

    题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...

  7. ADs系列之通用数据解析服务GAS(即将开源)

    面对成百上千的生产系统用户操作数据接入落地,你是否厌倦了每次机械编写打包解包的代码?对一次性接入多个数据的时候,还要对不同人联调,费时费力,你是否还会手忙脚乱,忙中不断出错?是否当数据出问题了,用的时 ...

  8. CF A. Xenia and Divisors

    题目大意: n(为三的倍数)个数的一个序列(每个数均不大于7),找出a,b,c a能被b整除,b能被c整除,序列中的每个数都被用到. 1 2 3 4 5 6 7 只有 1 2 4 1 2 6 1 3 ...

  9. iOS开发--即时通讯常用第三方库

    前言 自毕业到现在,从事iOS即时通讯开发已经1年半之久.主要负责Allure开发,目前已上架,可以在苹果商店搜素Allure.Allure模仿微信的交互和设计效果,已经实现微信的大部分功能. 在这里 ...

  10. UITableview刷新某一个cell或section

    //一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:2]; [tableview reloadSections:in ...