/// <summary>
/// 字符串转成对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="xmlString"></param>
/// <returns></returns>
public static T FormatObject<T>(string xmlString) where T : class
{
object result;
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (StringReader sr = new StringReader(xmlString))
{
result = serializer.Deserialize(sr);
}
return (T)result;
}
/// <summary>
/// 对象转成xml字符串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string FormatXml<T>(T obj) where T : class
{
StringBuilder buffer = new StringBuilder();
Type type = typeof(T);
var properties = type.GetProperties();
foreach (var property in properties)
{
if (property.CanWrite)
{
var getvalue = property.GetValue(obj,null);
if (getvalue == null)
{
property.SetValue(obj, "", null);
}
}
}
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (TextWriter writer = new StringWriter(buffer))
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
serializer.Serialize(writer, obj, namespaces);
}
var oldStr = "<?xml version=\"1.0\" encoding=\"utf-16\"?>";
var newStr = "<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"yes\" ?>";
buffer.Replace(oldStr, newStr);
//var oldStr2 = "<input xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">";
//var newStr2 = "<input>";
//buffer.Replace(oldStr2, newStr2);
return buffer.ToString();
}
}