示例#1
0
        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;
        }
示例#2
0
        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);
        }
示例#3
0
 public object Create(IDictionary <string, object> properties)
 {
     return(_element.Create(properties));
 }