Beispiel #1
0
        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);
        }
Beispiel #2
0
            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);
            }