DesignSurfaceServiceContainer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / Host / DesignSurfaceServiceContainer.cs / 1 / DesignSurfaceServiceContainer.cs

                            using System; 
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Design; 

namespace System.ComponentModel.Design { 
 
    /// 
    ///     A service container that supports "fixed" services.  Fixed 
    ///     services cannot be removed.
    /// 
    internal sealed class DesignSurfaceServiceContainer : ServiceContainer {
 
        private Hashtable _fixedServices;
 
        ///  
        ///     We always add ourselves as a service.
        ///  
        internal DesignSurfaceServiceContainer(IServiceProvider parentProvider) : base(parentProvider) {
            AddFixedService(typeof(DesignSurfaceServiceContainer), this);
        }
 
        /// 
        ///     Removes the given service type from the service container. 
        ///  
        internal void AddFixedService(Type serviceType, object serviceInstance) {
            AddService(serviceType, serviceInstance); 
            if (_fixedServices == null) {
                _fixedServices = new Hashtable();
            }
            _fixedServices[serviceType] = serviceType; 
        }
 
        ///  
        ///     Removes a previously added fixed service.
        ///  
        internal void RemoveFixedService(Type serviceType) {
            if (_fixedServices != null) {
                _fixedServices.Remove(serviceType);
            } 
            RemoveService(serviceType);
        } 
 
        /// 
        ///     Removes the given service type from the service container.  Throws 
        ///     an exception if the service is fixed.
        /// 
        public override void RemoveService(Type serviceType, bool promote) {
            if (serviceType != null && _fixedServices != null && _fixedServices.ContainsKey(serviceType)) { 
                throw new InvalidOperationException(SR.GetString(SR.DesignSurfaceServiceIsFixed, serviceType.Name));
            } 
            base.RemoveService(serviceType, promote); 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK