public void AddExtensions(ReferenceField field) { foreach (OutputExtension extension in outputExtensions.Values) { if (extension.ReferenceFieldExtensionType != null) { if (!field.extensions.ContainsKey(extension.ReferenceFieldExtensionType)) { ReferenceFieldExtension newExtension = (ReferenceFieldExtension) Activator.CreateInstance( extension.ReferenceFieldExtensionType); field.extensions.Add(newExtension.GetType(), newExtension); } } } }
public ReferenceField(XmlTextReader r, string version) : this() { string refTypeName; string refTypeNameSpace; if (r.Name != "ChildEntry") { throw new Exception(string.Format("Cannot load, expected ChildEntry, found '{0}'.", r.Name)); } r.MoveToAttribute("PropertyName"); this.Name = r.Value; r.MoveToContent(); r.Read(); CustomPrivateName = string.Empty; r.ReadElementString("CustomPrivateName"); CustomColumnName = string.Empty; r.ReadElementString("CustomColumnName"); refTypeName = r.ReadElementString("DataType"); if (r.Name == "Builder") { ReferenceTypeBuilder.Builders.TryGetValue(r.ReadElementString("Builder"), out builder); } refTypeNameSpace = r.ReadElementString("DataTypeNameSpace"); if (r.LocalName == "AllowNull") { allowNull = bool.Parse(r.ReadElementString("AllowNull")); } Caption = r.ReadElementString("Caption"); Description = r.ReadElementString("Description"); isTableCoded = bool.Parse(r.ReadElementString("IsTableCoded")); tableName = r.ReadElementString("TableName"); isUnique = bool.Parse(r.ReadElementString("IsUnique")); refMode = ParseChildEntryType(r.ReadElementString("ChildEntryType")); if (r.LocalName == "Group") { group = r.ReadElementString("Group"); } if (r.LocalName == "CascadeSaveEnabled") { cascadeSaveEnabled = bool.Parse(r.ReadElementString("CascadeSaveEnabled")); } else { cascadeSaveEnabled = true; } if (r.LocalName == "EnableCache") { enableCache = bool.Parse(r.ReadElementString("EnableCache")); } else { enableCache = false; } if (r.LocalName == "IsClientGridEnabled") { isClientGridEnabled = bool.Parse(r.ReadElementString("IsClientGridEnabled")); } if (r.LocalName == "IsClientEditEnabled") { isClientEditEnabled = bool.Parse(r.ReadElementString("IsClientEditEnabled")); } if (r.LocalName == "IsClientViewEnabled") { isClientViewEnabled = bool.Parse(r.ReadElementString("IsClientViewEnabled")); } if (r.LocalName == "IsClientCollectionAddEnabled") { isClientCollectionAddEnabled = bool.Parse(r.ReadElementString("IsClientCollectionAddEnabled")); } if (r.LocalName == "IsClientCollectionDeleteEnabled") { isClientCollectionDeleteEnabled = bool.Parse(r.ReadElementString("IsClientCollectionDeleteEnabled")); } if (r.LocalName == "IsClientCollectionEditEnabled") { isClientCollectionEditEnabled = bool.Parse(r.ReadElementString("IsClientCollectionEditEnabled")); } if (r.Name == "MetaAttributes") { if (!r.IsEmptyElement) { r.Read(); while (r.LocalName == "MetaAttribute") { attributes.Add(new MetaAttribute(r)); } r.ReadEndElement(); } else { r.Read(); } } if (r.Name == "Extensions") { if (!r.IsEmptyElement) { r.Read(); while (r.Name == "Extension") { ReferenceFieldExtension newExtension = (ReferenceFieldExtension) ObjectExtension.Build(r, version); extensions.Add(newExtension.GetType(), newExtension); } r.ReadEndElement(); } else { r.Read(); } } r.ReadEndElement(); // Create datatype refType = new ReferenceType(refTypeName, refTypeNameSpace); }