ServiceProviders.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / Markup / ServiceProviders.cs / 1 / ServiceProviders.cs

                            //---------------------------------------------------------------------------- 
//
// File: ServiceProviders.cs
//
// Description: 
//   Proivde a implementation for IServiceProvider and method to add services
// 
// Copyright (C) 2003 by Microsoft Corporation.  All rights reserved. 
//
//--------------------------------------------------------------------------- 
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Security.Permissions; 

///////////////////////////////////////////////////////////////////////////////////////// 
namespace System.Windows.Markup 
{
    ///  
    /// Proivde a implementation for IServiceProvider and method to add services
    /// 
    /// Restrict public access until M8.2
    //CASRemoval:[StrongNameIdentityPermission(SecurityAction.LinkDemand, PublicKey = Microsoft.Internal.BuildInfo.WCP_PUBLIC_KEY_STRING)] 
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
    [System.ComponentModel.Browsable(false)] 
    public class ServiceProviders : IServiceProvider 
    {
 
        #region Implement IServiceProvider interface
        /// 
        /// Implement IServiceProvider.GetSevice
        ///  
        /// 
        ///  
        public Object GetService(Type serviceType) 
        {
            if (_objDict.ContainsKey(serviceType)) 
            {
                return _objDict[serviceType];
            }
 
            return null;
        } 
        #endregion 

        ///  
        /// Add a new service
        /// 
        /// 
        ///  
        public void AddService(Type serviceType, Object service)
        { 
            if (serviceType == null) 
            {
                throw new ArgumentNullException("serviceType"); 
            }

            if (service == null)
            { 
                throw new ArgumentNullException("service");
            } 
 
            if (_objDict.ContainsKey(serviceType) == false)
            { 
                _objDict.Add(serviceType, service);
            }
            else if (_objDict[serviceType] != service)
            { 
                throw new ArgumentException(SR.Get(SRID.ServiceTypeAlreadyAdded), "serviceType");
            } 
        } 

        private Dictionary _objDict = new Dictionary(); 
    }
}

// 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