//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//------------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
/*
* Containers use sites to manage and communicate their child components.
*
* A site is a convenient place for a container to store container-specific
* per-component information. The canonical example of such a piece of
* information is the name of the component.
*
* To be a site, a class implements the ISite interface.
*/
// Interfaces don't need to be serializable
///
/// Provides functionality required by sites. Sites bind
/// a to a
/// and enable communication between them, as well as provide a way
/// for the container to manage its components.
///
[System.Runtime.InteropServices.ComVisible(true)]
public interface ISite : IServiceProvider {
// The component sited by this component site.
///
/// When implemented by a class, gets the component associated with the .
///
IComponent Component {get;}
// The container in which the component is sited.
///
/// When implemented by a class, gets the container associated with the .
///
IContainer Container {get;}
// Indicates whether the component is in design mode.
///
/// When implemented by a class, determines whether the component is in design mode.
///
bool DesignMode {get;}
// The name of the component.
//
///
/// When implemented by a class, gets or sets the name of
/// the component associated with the .
///
String Name {
get;
set;
}
}
}