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); }
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; } } }
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); }
//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); }
private string GetVersion(BaseObjectElementAttribute attribute) { return(string.IsNullOrEmpty(attribute.Version) ? DefaultVersion : attribute.Version); }