private CreateOrGetAttribute ( string memberName, object value ) : |
||
memberName | string | |
value | object | |
Résultat |
internal ElasticObject CreateOrGetAttribute(string memberName, object value)
{
if (!HasAttribute(memberName))
{
AddAttribute(memberName, new ElasticObject(memberName,value));
}
return Attribute(memberName);
}
/// <summary> /// Build an expando from an XElement /// </summary> /// <param name="el"></param> /// <returns></returns> public static ElasticObject ElasticFromXElement(XElement el) { var exp = new ElasticObject(); if (!string.IsNullOrEmpty(el.Value)) exp.InternalValue = el.Value; exp.InternalName = el.Name.LocalName; foreach (var a in el.Attributes()) exp.CreateOrGetAttribute(a.Name.LocalName, a.Value); var textNode= el.Nodes().FirstOrDefault(); if (textNode is XText) { exp.InternalContent = textNode.ToString(); } foreach (var c in el.Elements()) { var child = ElasticFromXElement(c); child.InternalParent = exp; exp.AddElement(child); } return exp; }