<?xml version="1.0" encoding="utf-8"?>
<Type Name="IServiceContainer" FullName="System.ComponentModel.Design.IServiceContainer">
  <TypeSignature Language="C#" Maintainer="auto" Value="public interface IServiceContainer : IServiceProvider" />
  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IServiceContainer implements class System.IServiceProvider" />
  <AssemblyInfo>
    <AssemblyName>System</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>1.0.3300.0</AssemblyVersion>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Interfaces>
    <Interface>
      <InterfaceName>System.IServiceProvider</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>A service container is, by definition, a service provider. In addition to providing services, it also provides a mechanism for adding and removing services. Services are a foundation of the .NET Framework design-time architecture. Services provide design-time objects access to specific features and methods implemented by a service object that provides a service or services.</para>
      <para>To obtain a service at design time, call the <see cref="M:System.ComponentModel.Component.GetService(System.Type)" /> method of a component sited in design mode. Designers and other objects can add or remove services at design time through the <see cref="T:System.ComponentModel.Design.IDesignerHost" /> interface.</para>
      <para>Service containers can be contained by other service containers, forming a tree of service containers. By default, the <see cref="T:System.ComponentModel.Design.IServiceContainer" /> interface adds services to the closest service container. When a service is added, it can be added with instructions to promote it. When a service is promoted, it is added to any parent service container, on up until the top of the service container tree is reached. This allows a designer to provide a global service that other objects in the process can use.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Provides a container for services.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="AddService">
      <MemberSignature Language="C#" Value="public void AddService (Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddService(class System.Type serviceType, class System.ComponentModel.Design.ServiceCreatorCallback callback) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="serviceType" Type="System.Type" />
        <Parameter Name="callback" Type="System.ComponentModel.Design.ServiceCreatorCallback" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds the specified service to the service container.</para>
        </summary>
        <param name="serviceType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of service to add. </param>
        <param name="callback">
          <attribution license="cc4" from="Microsoft" modified="false" />A callback object that is used to create the service. This allows a service to be declared as available, but delays the creation of the object until the service is requested. </param>
      </Docs>
    </Member>
    <Member MemberName="AddService">
      <MemberSignature Language="C#" Value="public void AddService (Type serviceType, object serviceInstance);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddService(class System.Type serviceType, object serviceInstance) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="serviceType" Type="System.Type" />
        <Parameter Name="serviceInstance" Type="System.Object" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds the specified service to the service container.</para>
        </summary>
        <param name="serviceType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of service to add. </param>
        <param name="serviceInstance">
          <attribution license="cc4" from="Microsoft" modified="false" />An instance of the service type to add. This object must implement or inherit from the type indicated by the <paramref name="serviceType" /> parameter. </param>
      </Docs>
    </Member>
    <Member MemberName="AddService">
      <MemberSignature Language="C#" Value="public void AddService (Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback, bool promote);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddService(class System.Type serviceType, class System.ComponentModel.Design.ServiceCreatorCallback callback, bool promote) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="serviceType" Type="System.Type" />
        <Parameter Name="callback" Type="System.ComponentModel.Design.ServiceCreatorCallback" />
        <Parameter Name="promote" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds the specified service to the service container, and optionally promotes the service to parent service containers.</para>
        </summary>
        <param name="serviceType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of service to add. </param>
        <param name="callback">
          <attribution license="cc4" from="Microsoft" modified="false" />A callback object that is used to create the service. This allows a service to be declared as available, but delays the creation of the object until the service is requested. </param>
        <param name="promote">
          <attribution license="cc4" from="Microsoft" modified="false" />true to promote this request to any parent service containers; otherwise, false. </param>
      </Docs>
    </Member>
    <Member MemberName="AddService">
      <MemberSignature Language="C#" Value="public void AddService (Type serviceType, object serviceInstance, bool promote);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddService(class System.Type serviceType, object serviceInstance, bool promote) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="serviceType" Type="System.Type" />
        <Parameter Name="serviceInstance" Type="System.Object" />
        <Parameter Name="promote" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds the specified service to the service container, and optionally promotes the service to any parent service containers.</para>
        </summary>
        <param name="serviceType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of service to add. </param>
        <param name="serviceInstance">
          <attribution license="cc4" from="Microsoft" modified="false" />An instance of the service type to add. This object must implement or inherit from the type indicated by the <paramref name="serviceType" /> parameter. </param>
        <param name="promote">
          <attribution license="cc4" from="Microsoft" modified="false" />true to promote this request to any parent service containers; otherwise, false. </param>
      </Docs>
    </Member>
    <Member MemberName="RemoveService">
      <MemberSignature Language="C#" Value="public void RemoveService (Type serviceType);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void RemoveService(class System.Type serviceType) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="serviceType" Type="System.Type" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Removes the specified service type from the service container.</para>
        </summary>
        <param name="serviceType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of service to remove. </param>
      </Docs>
    </Member>
    <Member MemberName="RemoveService">
      <MemberSignature Language="C#" Value="public void RemoveService (Type serviceType, bool promote);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void RemoveService(class System.Type serviceType, bool promote) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="serviceType" Type="System.Type" />
        <Parameter Name="promote" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Removes the specified service type from the service container, and optionally promotes the service to parent service containers.</para>
        </summary>
        <param name="serviceType">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of service to remove. </param>
        <param name="promote">
          <attribution license="cc4" from="Microsoft" modified="false" />true to promote this request to any parent service containers; otherwise, false. </param>
      </Docs>
    </Member>
  </Members>
</Type>