ViewFactoryEntry ParseViewFactoryElement(ExtensionData extensionData, XElement vfElement) { var entry = new ViewFactoryEntry(extensionData) { RegisteredName = vfElement.Attribute("RegisteredName").Value, DisplayName = vfElement.Attribute("DisplayName").Value, IsSingleInstance = bool.Parse(vfElement.Attribute("IsSingleInstance").Value), IsSingleInstancePerLayout = bool.Parse(vfElement.Attribute("IsSingleInstancePerLayout").Value), IsInternalOnly = bool.Parse(vfElement.Attribute("IsInternalOnly").Value), DefaultShortcutKey = vfElement.Attribute("DefaultShortcutKey").Value, TypeName = vfElement.Attribute("TypeName").Value }; entry.DocumentFactoryAffinities.AddRange(vfElement.Elements("DocumentAffinity").Select(e => e.Attribute("FactoryName").Value)); return(entry); }
ViewFactoryEntry CreateViewFactoryEntry(ViewFactoryAttribute a, Type factoryType, IViewFactory factory) { var entry = new ViewFactoryEntry(this) { RegisteredName = a.RegisteredName, DisplayName = factory.GetViewDisplayName(a.RegisteredName), TypeName = factoryType.AssemblyQualifiedName, IsSingleInstance = a.IsSingleInstance, IsSingleInstancePerLayout = a.IsSingleInstancePerLayout, IsInternalOnly = a.IsInternalOnly, DefaultShortcutKey = string.IsNullOrEmpty(a.DefaultShortcutKey) ? string.Empty : a.DefaultShortcutKey.ToUpperInvariant(), Factory = factory }; if (!string.IsNullOrEmpty(a.DocumentAffinities)) { entry.DocumentFactoryAffinities.AddRange(a.DocumentAffinities.Split('|')); } return(entry); }