diff --git a/src/Windows/Avalonia.Designer/AppHost/AvaloniaAppHost.cs b/src/Windows/Avalonia.Designer/AppHost/AvaloniaAppHost.cs index 442499c783..b1ad9f0f69 100644 --- a/src/Windows/Avalonia.Designer/AppHost/AvaloniaAppHost.cs +++ b/src/Windows/Avalonia.Designer/AppHost/AvaloniaAppHost.cs @@ -10,7 +10,6 @@ using System.Windows.Forms.Integration; using System.Xml; using Avalonia.Designer.Comm; using Avalonia.Designer.InProcDesigner; -using Avalonia.Designer.Metadata; using Timer = System.Windows.Forms.Timer; using Avalonia.DesignerSupport; @@ -91,88 +90,7 @@ namespace Avalonia.Designer.AppHost } } - AvaloniaDesignerMetadata BuildMetadata(List asms, Type xmlNsAttr) - { - var rv = new AvaloniaDesignerMetadata() - { - - NamespaceAliases = new List(), - Types = new List() - }; - - - foreach (var asm in asms) - { - foreach (dynamic xmlns in asm.GetCustomAttributes().Where(a => a.GetType() == xmlNsAttr)) - { - rv.NamespaceAliases.Add(new MetadataNamespaceAlias - { - Namespace = (string)xmlns.ClrNamespace, - XmlNamespace = (string)xmlns.XmlNamespace - }); - } - - try - { - foreach (var type in asm.GetTypes()) - { - try - { - if (!type.IsPublic || type.IsAbstract) - continue; - var t = new MetadataType() - { - Name = type.Name, - Namespace = type.Namespace, - Properties = new List() - }; - rv.Types.Add(t); - foreach (var prop in type.GetProperties()) - { - if (prop.GetMethod?.IsPublic != true) - continue; - var p = new MetadataProperty() - { - Name = prop.Name, - Type = - prop.PropertyType == typeof (string) || - (prop.PropertyType.IsValueType && - prop.PropertyType.Assembly == typeof (int).Assembly) - ? MetadataPropertyType.BasicType - : prop.PropertyType.IsEnum - ? MetadataPropertyType.Enum - : MetadataPropertyType.MetadataType - - }; - if (p.Type == MetadataPropertyType.Enum) - p.EnumValues = Enum.GetNames(prop.PropertyType); - if (p.Type == MetadataPropertyType.MetadataType) - p.MetadataFullTypeName = prop.PropertyType.Namespace + "." + prop.PropertyType.Name; - t.Properties.Add(p); - } - } - catch - { - // - } - } - } - catch - { - // - } - } - return rv; - } - - void BuildMetadataAndSendMessageAsync(List asms) - { - var xmlNsAttr = LookupType("Avalonia.Metadata.XmlnsDefinitionAttribute"); - new Thread(() => - { - _comm.SendMessage(new UpdateMetadataMessage(BuildMetadata(asms, xmlNsAttr))); - }).Start(); - } + private void DoInit(string targetExe, StringBuilder logger) { @@ -196,9 +114,6 @@ namespace Avalonia.Designer.AppHost logger.AppendLine(e.ToString()); } - log("Looking up Avalonia types"); - BuildMetadataAndSendMessageAsync(asms); - log("Initializing built-in designer"); var dic = new Dictionary(); Api = new DesignerApi(dic) {OnResize = OnResize, OnWindowCreated = OnWindowCreated}; diff --git a/src/Windows/Avalonia.Designer/Avalonia.Designer.csproj b/src/Windows/Avalonia.Designer/Avalonia.Designer.csproj index 5ab3b2e78d..a84cec6e5a 100644 --- a/src/Windows/Avalonia.Designer/Avalonia.Designer.csproj +++ b/src/Windows/Avalonia.Designer/Avalonia.Designer.csproj @@ -1,4 +1,4 @@ - + @@ -82,7 +82,6 @@ - @@ -91,7 +90,6 @@ InProcDesignerView.xaml - AvaloniaDesigner.xaml @@ -126,6 +124,9 @@ + + +