/// <summary> /// 将对象Xml序列化成字节数组【Btye[]】,可自定义命名空间,可设置写入器配置 /// </summary> /// <typeparam name="T">要序列化的对象类型</typeparam> /// <param name="value">要序列化的对象</param> /// <param name="namespaces">要添加的命名空间集合,如 xmlns:xsi="xxx",【xsi】Key为[前缀],【xxx】Value为[值]</param> /// <param name="settings">Xml写入器配置</param> /// <returns></returns> public static byte[] ToXmlBytes <T>(this T value, IEnumerable <KeyValuePair <string, string> > namespaces, XmlWriterSettings settings = null) where T : class, new() { using MemoryStream stream = new MemoryStream(); using (XmlWriter xmlWriter = settings.IsNull() ? XmlWriter.Create(stream) : XmlWriter.Create(stream, settings)) { XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); if (namespaces?.Count() > 0) { foreach (var item in namespaces) { ns.Add(item.Key, item.Value);//添加前缀和命名空间值,如 xmlns:xsi="xxx",【xsi】为前缀,【xxx】为值 } } new XmlSerializer(typeof(T)).Serialize(xmlWriter, value, ns);//序列化对象 } return(stream.ToArray()); }