Ejemplo n.º 1
0
        public void Add(BaseXmlConfigFactory factory, string regName, BaseObjectElementAttribute attr, Type type)
        {
            ObjectElementAttribute objAttr = new ObjectElementAttribute(attr.NamespaceType)
            {
                LocalName      = regName,
                ObjectType     = type,
                UseConstructor = attr.UseConstructor
            };

            if (attr.NamespaceType == NamespaceType.Namespace)
            {
                objAttr.NamespaceUri = attr.NamespaceUri;
            }
            QName       qName = objAttr.GetQName(objAttr.LocalName);
            VersionData data  = ObjectUtil.TryGetValue(fLocalElements, qName.LocalName);

            if (data == null)
            {
                data = new VersionData();
                fLocalElements.Add(qName.LocalName, data);
                fXmlElements.Add(qName, data);
            }
            data.Add(attr, objAttr, factory.DefaultVersion);
            fTypeElements.Add(type, objAttr);
        }
Ejemplo n.º 2
0
            public void Add(BaseObjectElementAttribute baseAttr, ObjectElementAttribute attr, string defaultVersion)
            {
                string version = string.IsNullOrEmpty(baseAttr.Version) ? defaultVersion : baseAttr.Version;

                if (!fElements.ContainsKey(version))
                {
                    fElements.Add(version, attr);
                    if (defaultVersion == version && fDefaultVersion != null)
                    {
                        fDefaultVersion = attr;
                    }
                }
            }
Ejemplo n.º 3
0
        public void Add(BaseXmlConfigFactory factory, string regName, BaseObjectElementAttribute attr, Type type)
        {
            ObjectElementAttribute objAttr = new ObjectElementAttribute(attr.NamespaceType)
            {
                LocalName      = regName,
                ObjectType     = type,
                UseConstructor = attr.UseConstructor
            };

            if (attr.NamespaceType == NamespaceType.Namespace)
            {
                objAttr.NamespaceUri = attr.NamespaceUri;
            }
            QName qName = objAttr.GetQName(objAttr.LocalName);

            fXmlElements.Add(qName, objAttr);
            fLocalElements.Add(qName.LocalName, objAttr);
            fTypeElements.Add(type, objAttr);
        }
Ejemplo n.º 4
0
        //internal void AddElements(ObjectElementInfo elements, Type type,
        //    PropertyInfo property, string modelName, DynamicElementAttribute dynamic)
        //{
        //    EnumableCodePlugIn((regName, regType, attr) =>
        //    {
        //        ObjectElementAttribute objectAttr = attr.Convert<BaseObjectElementAttribute>()
        //            .ConvertTo(regName, regType, dynamic);
        //        elements.Add(type, property, objectAttr, modelName);
        //    });
        //}

        //internal void AddElements(Dictionary<string, ObjectElementAttribute> dictionary, string factoryName)
        //{
        //    DynamicElementAttribute dynamic = new DynamicElementAttribute(factoryName);
        //    EnumableCodePlugIn((regName, regType, attr) =>
        //    {
        //        ObjectElementAttribute objectAttr = attr.Convert<BaseObjectElementAttribute>()
        //            .ConvertTo(regName, regType, dynamic);
        //        dictionary.Add(regName, objectAttr);
        //    });
        //}

        protected override bool Add(string regName, BasePlugInAttribute attribute, Type type)
        {
            BaseObjectElementAttribute elementAttr = attribute.Convert <BaseObjectElementAttribute>();
            string newRegName;

            if (SupportVersion)
            {
                VersionRegName version = new VersionRegName(regName, GetVersion(elementAttr));
                newRegName = version.WriteJson();
            }
            else
            {
                newRegName = regName;
            }
            var result = base.Add(newRegName, attribute, type);

            if (result)
            {
                fConfigData.Add(this, regName, elementAttr, type);
            }
            return(result);
        }
Ejemplo n.º 5
0
 private string GetVersion(BaseObjectElementAttribute attribute)
 {
     return(string.IsNullOrEmpty(attribute.Version) ? DefaultVersion : attribute.Version);
 }