public static object ReadElement(IScope scope, IReader reader, IElementDef def, Func<object> create) { if (def.IsImmutable) { // TODO pass original property name rather than xml name var props = ReadProperties(scope, reader, null, def).ToDictionary(x => x.Key.Name.LocalName, x => x.Value); return def.Create(props); } var obj = create != null ? create() : Activator.CreateInstance(def.Type); ReadElement(scope, reader, def, obj); return obj; }
public static object ReadElement(IScope scope, IReader reader, IElementDef def, Func <object> create) { if (def.IsImmutable) { // TODO pass original property name rather than xml name var props = ReadProperties(scope, reader, null, def).ToDictionary(x => x.Key.Name.LocalName, x => x.Value); return(def.Create(props)); } var obj = create != null?create() : Activator.CreateInstance(def.Type); ReadElement(scope, reader, def, obj); return(obj); }
public object Create(IDictionary <string, object> properties) { return(_element.Create(properties)); }