void OnResolveName(object sender, ResolveNameEventArgs e)
 {
     if (this.resolveNameEventHandler != null)
     {
         this.resolveNameEventHandler(this, e);
     }
 }
示例#2
0
        /// <summary>Retrieves an instance of a created object of the specified name.</summary>
        /// <returns>An instance of the object with the given name, or null if no object by that name can be found.</returns>
        /// <param name="name">The name of the object to retrieve.</param>
        /// <exception cref="T:System.ArgumentNullException">
        ///   <paramref name="name" /> is null.</exception>
        /// <exception cref="T:System.InvalidOperationException">This property was accessed outside of a serialization session.</exception>
        object IDesignerSerializationManager.GetInstance(string name)
        {
            object obj = null;

            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            this.CheckSession();
            if (this.instancesByName != null)
            {
                obj = this.instancesByName[name];
            }
            if (obj == null && this.PreserveNames && this.Container != null)
            {
                obj = this.Container.Components[name];
            }
            if (obj == null)
            {
                ResolveNameEventArgs resolveNameEventArgs = new ResolveNameEventArgs(name);
                this.OnResolveName(resolveNameEventArgs);
                obj = resolveNameEventArgs.Value;
            }
            return(obj);
        }
        public void Ctor_Name(string name)
        {
            var eventArgs = new ResolveNameEventArgs(name);

            Assert.Same(name, eventArgs.Name);
            Assert.Null(eventArgs.Value);
        }
        ///     Retrieves an instance of a created object of the given name, or
        ///     null if that object does not exist.
        object IDesignerSerializationManager.GetInstance(string name)
        {
            object instance = null;

            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            // Check our local nametable first
            //
            if (_instancesByName != null)
            {
                instance = _instancesByName[name];
            }

            if (instance == null && _loader.LoaderHost != null)
            {
                instance = _loader.LoaderHost.Container.Components[name];
            }

            if (instance == null && _resolveNameEventHandler != null)
            {
                ResolveNameEventArgs e = new ResolveNameEventArgs(name);
                _resolveNameEventHandler(this, e);
                instance = e.Value;
            }

            return(instance);
        }
示例#5
0
        private object RequestInstance(string name)
        {
            ResolveNameEventArgs args = new ResolveNameEventArgs(name);

            this.OnResolveName(args);
            return(args.Value);
        }
示例#6
0
 protected virtual void OnResolveName(ResolveNameEventArgs e)
 {
     if (_resolveNameHandler != null)
     {
         _resolveNameHandler(this, e);
     }
 }
 protected virtual void OnResolveName(ResolveNameEventArgs e)
 {
     if (ResolveName != null)
     {
         ResolveName(this, e);
     }
 }
示例#8
0
        //<Snippet1>
        public ResolveNameEventArgs CreateResolveNameEventArgs(object value, string name)
        {
            ResolveNameEventArgs e = new ResolveNameEventArgs(name);

            // The name to resolve                       e.Name
            // Stores an object matching the name        e.Value
            return(e);
        }
        public void Value_Set_GetReturnsExpected(object value)
        {
            var eventArgs = new ResolveNameEventArgs("Name")
            {
                Value = value
            };

            Assert.Same(value, eventArgs.Value);
        }
        /// <include file='doc\DesignerSerializationObject.uex' path='docs/doc[@for="DesignerSerializationObject.GetInstance"]/*' />
        /// <devdoc>
        ///     Retrieves an instance of a created object of the given name, or
        ///     null if that object does not exist.
        /// </devdoc>
        object IDesignerSerializationManager.GetInstance(string name)
        {
            object instance = null;

            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            // Check our local nametable first
            //
            if (instancesByName != null)
            {
                instance = instancesByName[name];
            }

            // Check our own stuff here.
            //
            if (instance == null && name.Equals("components"))
            {
                // We implement the IContainer here
                //
                instance = this;
            }

            if (instance == null && resolveNameEventHandler != null)
            {
                ResolveNameEventArgs e = new ResolveNameEventArgs(name);
                resolveNameEventHandler(this, e);
                instance = e.Value;
            }

            // okay, fine, we're just a failure.  we can't do anything right.
            // ask the designer's actual manager if it's heard of this guy.
            //
            if (instance == null && manager != null)
            {
                instance = manager.GetInstance(name);
            }

            if (instance == null)
            {
                IReferenceService refSvs = (IReferenceService)((IServiceProvider)this).GetService(typeof(IReferenceService));
                if (refSvs != null)
                {
                    instance = refSvs.GetReference(name);
                }
            }

            return(instance);
        }
示例#11
0
        object IDesignerSerializationManager.GetInstance(string name)
        {
            object instance = null;

            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (this._instancesByName != null)
            {
                instance = this._instancesByName[name];
            }
            if ((instance == null) && (this._loader.LoaderHost != null))
            {
                instance = this._loader.LoaderHost.Container.Components[name];
            }
            if ((instance == null) && (this.ResolveName != null))
            {
                ResolveNameEventArgs e = new ResolveNameEventArgs(name);
                this.ResolveName(this, e);
                instance = e.Value;
            }
            return(instance);
        }
示例#12
0
        /// <summary>
        /// Extends BeginInvoke so that when a state object is not needed, null does not need to be passed.
        /// <example>
        /// resolvenameeventhandler.BeginInvoke(sender, e, callback);
        /// </example>
        /// </summary>
        public static IAsyncResult BeginInvoke(this ResolveNameEventHandler resolvenameeventhandler, Object sender, ResolveNameEventArgs e, AsyncCallback callback)
        {
            if (resolvenameeventhandler == null)
            {
                throw new ArgumentNullException("resolvenameeventhandler");
            }

            return(resolvenameeventhandler.BeginInvoke(sender, e, callback, null));
        }
示例#13
0
 /// <summary>Raises the <see cref="E:System.ComponentModel.Design.Serialization.IDesignerSerializationManager.ResolveName" /> event. </summary>
 /// <param name="e">A <see cref="T:System.ComponentModel.Design.Serialization.ResolveNameEventArgs" /> that contains the event data. </param>
 protected virtual void OnResolveName(ResolveNameEventArgs e)
 {
     this.resolveNameEventHandler?.Invoke(this, e);
 }
示例#14
0
 private void OnResolveName(object sender, ResolveNameEventArgs e)
 {
     // Displays ResolveName event information on the console.
     Console.WriteLine("Name of the name to resolve: " + e.Name);
     Console.WriteLine("ToString output of the object that no name was resolved for: " + e.Value.ToString());
 }
        public void DesignerSerializationManager_OnResolveName_InvokeWithResolveName_CallsHandler(ResolveNameEventArgs eventArgs)
        {
            var manager   = new SubDesignerSerializationManager();
            int callCount = 0;
            ResolveNameEventHandler handler = (sender, e) =>
            {
                Assert.Same(manager, sender);
                Assert.Same(eventArgs, e);
                callCount++;
            };
            IDisposable session = manager.CreateSession();

            manager.ResolveName += handler;
            manager.OnResolveName(eventArgs);
            Assert.Equal(1, callCount);
            session.Dispose();

            // Call again.
            session = manager.CreateSession();
            manager.OnResolveName(eventArgs);
            Assert.Equal(1, callCount);
            session.Dispose();

            // Remove handler.
            session              = manager.CreateSession();
            manager.ResolveName += handler;
            manager.ResolveName -= handler;
            Assert.Equal(1, callCount);
            session.Dispose();
        }