C# xml可序列化多值枚举脚本
2016-02-17 16:22
405 查看
代码:
View Code
使用:
其他扩展:
可序列化接口:/article/5238756.html
序列化助手类:/article/5238733.html
using System; using System.Collections.Generic; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace Hont { [XmlRoot("SerizlizableMultipleValueEnum"), Serializable] public class SerizlizableMultipleValueEnum<TEnum> : IXmlSerializable where TEnum : IConvertible { TEnum mEnumValue; public TEnum EnumValue { get { return mEnumValue; } } public SerizlizableMultipleValueEnum() { } public SerizlizableMultipleValueEnum(TEnum enumValue) { this.mEnumValue = enumValue; } #region IXmlSerializable Members public XmlSchema GetSchema() { return null; } public void ReadXml(XmlReader reader) { var typeSer = new XmlSerializer(typeof(int)); bool wasEmpty = reader.IsEmptyElement; reader.Read(); if (wasEmpty) return; while (reader.NodeType != XmlNodeType.EndElement) { reader.ReadStartElement("EnumValue"); mEnumValue = (TEnum)typeSer.Deserialize(reader); reader.ReadEndElement(); reader.MoveToContent(); } reader.ReadEndElement(); } public void WriteXml(XmlWriter writer) { var typeSer = new XmlSerializer(typeof(int)); writer.WriteStartElement("EnumValue"); typeSer.Serialize(writer, Convert.ToInt32(mEnumValue)); writer.WriteEndElement(); } #endregion } }
View Code
使用:
mTestValue = new SerizlizableMultipleValueEnum<MyEnum>(MyEnum.Value1 | MyEnum.Value2); var str = XmlSerializationHelper.SerializationToString(mTestValue); Console.WriteLine(str); mTestValue = XmlSerializationHelper.DeSerializationFromString<SerizlizableMultipleValueEnum<MyEnum>>(str); Console.WriteLine(mTestValue.EnumValue); //print 6.(value1 is 2, value2 is 4)
其他扩展:
可序列化接口:/article/5238756.html
序列化助手类:/article/5238733.html
相关文章推荐
- C#设计模式编程中运用适配器模式结构实战演练
- c#数组,手机号随机数抽奖
- 解析C#设计模式编程中适配器模式的实现
- 登山-C#-var关键字,dynamic关键字和类型强制转换之间的区别
- C#编程中使用设计模式中的原型模式的实例讲解
- C# Load DLL From Embedded Resource(把exe和dll捆绑起来)
- 深入解析C#设计模式编程中对建造者模式的运用
- C#比较运算符的重载:
- C#:运算符重载
- 登山-C#-IFormattable之自定义string的现实格式
- 三层登录——C#编写
- 详解C#的设计模式编程之抽象工厂模式的应用
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- Windows服务的配置与安装
- C#设计模式08-组合模式
- C# Enum,Int,String的互相转换 枚举转换
- C# 类型转换 Dictionary转Model类
- [DevExpress]C#picturebox或者Dev控件 PictureEdit 按比例的缩放加载图片
- c#大圣之路笔记——绑定dropdown数据的基本方法
- 实例解析C#设计模式编程中简单工厂模式的使用