private static DataNode FromArray(object obj, string arrayName = null) { var result = DataNode.CreateArray(arrayName); var array = (Array)obj; var type = array.GetType(); if (array != null && array.Length > 0) { var itemType = type.GetElementType(); for (int i = 0; i < array.Length; i++) { var item = array.GetValue(i); if (itemType.IsPrimitive()) { result.AddValue(item); } else { var itemNode = item.ToDataNode(null, true); result.AddNode(itemNode); } } } return(result); }
public static DataNode ToDataNode <T>(this IEnumerable <T> obj, string name) { var result = DataNode.CreateArray(name); foreach (var item in obj) { var node = item.ToDataNode(); result.AddNode(node); } return(result); }