zoukankan      html  css  js  c++  java
  • 把一个对象转化为xml

    方法一:指定对象

    private string ToGatheringEMXML(GatheringEMEntity entity)
    {
    string retSerialXml = "";
    System.IO.MemoryStream StreamRequest = new System.IO.MemoryStream();
    System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(GatheringEMEntity));

    System.Xml.Serialization.XmlSerializerNamespaces ns = new System.Xml.Serialization.XmlSerializerNamespaces();
    ns.Add("", "");
    serializer.Serialize(StreamRequest, entity, ns);
    retSerialXml = System.Text.Encoding.UTF8.GetString(StreamRequest.GetBuffer());
    return retSerialXml;
    }

    方法二:不指定对象,通用方法

    #region [ SerilaizeToString ]

    public override string SerializeToString(object obj, System.Type[] extraTypes, Encoding encoding)
    {
    string serializedString = string.Empty;
    if (obj != null)
    {
    XmlSerializer serializer = s_XmlSerializerCache.GetSerializer(obj.GetType(), extraTypes);
    serializedString = SerializeToString(serializer, obj, encoding);
    }

    return serializedString;
    }

    #endregion

    public XmlSerializer GetSerializer(Type type, Type[] knownTypes)
    {
    XmlSerializer serializer = null;
    XmlSerializerCacheKey key = new XmlSerializerCacheKey(type,
    knownTypes);
    if (!_serializers.ContainsKey(key))
    {
    lock (_syncRoot)
    {
    if (!_serializers.ContainsKey(key))
    {
    serializer = knownTypes == null ? new
    XmlSerializer(type) : new XmlSerializer(type, knownTypes);
    _serializers.Add(key, serializer);
    return serializer;
    }
    }
    }

    serializer = this._serializers[key];
    return serializer;
    }

    protected string SerializeToString(XmlSerializer serializer, object obj, Encoding encoding)
    {
    StringBuilder sb = new StringBuilder();
    using (TextWriter writer = new EncodedStringWriter(sb, encoding))
    {
    XmlTextWriter xtw = new XmlTextWriter(writer);
    if (SerializationSettings.Current.Indent)
    {
    xtw.Formatting = Formatting.Indented;
    xtw.Indentation = 2;
    }
    XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces();
    xmlns.Add(string.Empty, string.Empty);
    serializer.Serialize(xtw, obj, xmlns);
    }

    return sb.ToString();
    }

  • 相关阅读:
    css 文本超过指定行数,显示省略号
    CSS 使radio和checkbox框,和文字对齐平行
    C# 使用InputStream接收 解析表单参数
    CSS 控制文本超出宽度,显示省略号
    C# 将http在线文件,保存到服务器指定位置
    C# Get请求
    C# POST请求
    js 使用XMLHttpRequest 上传文件,显示进度条
    js 验证字符长度,一个中文2个字符,英文和数字为1个字符
    iOS Carthage集成SnapKit
  • 原文地址:https://www.cnblogs.com/jameshappy/p/3511075.html
Copyright © 2011-2022 走看看