/// <summary> /// 转化对象为xml字符串 /// </summary> /// <param name="builder"></param> /// <param name="model"></param> private static void ToXmlString(StringBuilder builder, object model) { KubiuReflector reflector = KubiuReflector.Cache(model.GetType(), false); foreach (var item in reflector.Properties) { builder.Append("<" + item.Name + ">"); object v = item.GetValue(model); if (v == null || v is DBNull) { builder.Append("</" + item.Name + ">"); continue; } else if (v is String || v is ValueType) { builder.Append("<![CDATA[" + v.ToString() + "]]>"); builder.Append("</" + item.Name + ">"); continue; } if (v is IEnumerable) { builder.Append("<item>"); IEnumerable array = (IEnumerable)v; var ee = array.GetEnumerator(); if (ee.MoveNext()) { ToXmlString(builder, ee.Current); } builder.Append("<item>"); } builder.Append("</" + item.Name + ">"); } }
/// <summary> /// xml填充对象 /// </summary> /// <param name="collection"></param> /// <returns></returns> public T FillModel <T>() where T : class, new() { KubiuReflector reflector = KubiuReflector.Cache(typeof(T), false); T model = reflector.NewObject() as T; FillModel(model); return(model); }
/// <summary> /// xml填充对象 /// </summary> /// <param name="model"></param> /// <returns></returns> public void FillModel(object model) { if (model == null) { throw new ArgumentNullException("要填充对象为空"); } KubiuReflector reflector = KubiuReflector.Cache(model.GetType(), false); string key = string.Empty; foreach (var property in reflector.Properties) { key = "/xml/" + property.Name; if (IsExistNode(key)) { SetValue(model, property, GetValue(key)); } } }