예제 #1
0
        internal ObjectBase(Unknown other, ObjectFactoryDelegate factory)
        {
            other._Properties.CopyTo(this._Properties);

            foreach (var kvp in other._Attributes)
            {
                this._Attributes[kvp.Key] = kvp.Value;
            }

            foreach (var child in other._LogicalChildren)
            {
                if (factory != null && child is Unknown unkChild)
                {
                    _LogicalChildren.Add(factory(unkChild));
                }
                else
                {
                    _LogicalChildren.Add(child);
                }
            }
        }
예제 #2
0
        public static ObjectBase ParseXml(XElement root, ObjectFactoryDelegate factory)
        {
            var target = new Unknown(root.Name.LocalName);

            foreach (var xattr in root.Attributes())
            {
                target.Attributes[xattr.Name.LocalName] = xattr.Value;
            }

            var props = root.Element(_Constants.Namespace.GetName("Properties"));

            if (props != null)
            {
                target.Properties._ParseXml(props);
            }

            foreach (var childxml in root.Elements().Where(item => item.Name.LocalName != "Properties"))
            {
                var child = ParseXml(childxml, factory);
                target.AddLogicalChild(child);
            }

            return(factory(target));
        }
예제 #3
0
 internal Project(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
     Attributes["Version"] = CurrentVersion.ToString();
 }
예제 #4
0
 internal DocumentInfo(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
 }
예제 #5
0
 internal PluginReference(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
 }
예제 #6
0
 internal Task(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
 }
예제 #7
0
 internal Settings(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
 }
예제 #8
0
 internal Pipeline(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
 }
예제 #9
0
 internal Configuration(Unknown s, ObjectFactoryDelegate factory) : base(s, factory)
 {
 }
예제 #10
0
 public ObjectBase Activate(ObjectFactoryDelegate factory)
 {
     return(factory(this));
 }