private AvaloniaXamlObjectWriter(
     AvaloniaXamlSchemaContext schemaContext,
     XamlObjectWriterSettings settings,
     AvaloniaNameScope nameScope,
     IAmbientProvider parentAmbientProvider)
     : base(schemaContext, settings, parentAmbientProvider)
 {
     _nameScope     = nameScope;
     _schemaContext = schemaContext;
 }
        public static AvaloniaXamlObjectWriter Create(
            AvaloniaXamlSchemaContext schemaContext,
            AvaloniaXamlContext context,
            IAmbientProvider parentAmbientProvider = null)
        {
            var nameScope = new AvaloniaNameScope {
                Instance = context?.RootInstance
            };

            var writerSettings = new XamlObjectWriterSettings()
            {
                ExternalNameScope = nameScope,
                RegisterNamesOnExternalNamescope = true,
                RootObjectInstance = context?.RootInstance
            };

            return(new AvaloniaXamlObjectWriter(schemaContext,
                                                writerSettings.WithContext(context),
                                                nameScope,
                                                parentAmbientProvider));
        }