/// <summary>
/// The following example demonstrates the implementation of
/// ISite, IComponent, and IContainer for use in a simple library container.
///
/// This example uses the System, System.ComponentModel, and System.Collections
/// namespaces.
/// </summary> //This code segment implements the ISite and IComponent interfaces.
//The implementation of the IContainer interface can be seen in the documentation
//of IContainer. //Implement the ISite interface. // The ISBNSite class represents the ISBN name of the book component
class ISBNSite : ISite
{
private IComponent m_curComponent;
private IContainer m_curContainer;
private bool m_bDesignMode;
private string m_ISBNCmpName; public ISBNSite(IContainer actvCntr, IComponent prntCmpnt)
{
m_curComponent = prntCmpnt;
m_curContainer = actvCntr;
m_bDesignMode = false;
m_ISBNCmpName = null;
} //Support the ISite interface.
public virtual IComponent Component
{
get
{
return m_curComponent;
}
} public virtual IContainer Container
{
get
{
return m_curContainer;
}
}
public virtual bool DesignMode
{
get
{
return m_bDesignMode;
}
} public virtual string Name
{
get
{
return m_ISBNCmpName;
} set
{
m_ISBNCmpName = value;
}
} //Support the IServiceProvider interface.
public virtual object GetService(Type serviceType)
{
// we are not using any service objects in this example.
return null;
} } // The BookComponent class represents the book component of the library container.
// This class implements the IComponent interface.
class BookComponent : IComponent
{
public event EventHandler Disposed;
private ISite m_curISBNSite;
private string m_bookTitle;
private string m_bookAuthor; public BookComponent(string Title, string Author)
{
m_curISBNSite = null;
Disposed = null;
m_bookTitle = Title;
m_bookAuthor = Author;
} public string Title
{
get
{
return m_bookTitle;
}
} public string Author
{
get
{
return m_bookAuthor;
}
} public virtual void Dispose()
{
//There is nothing to clean.
if(Disposed != null)
Disposed(this,EventArgs.Empty);
} public virtual ISite Site
{
get
{
return m_curISBNSite;
}
set
{
m_curISBNSite = value;
}
} public override bool Equals(object cmp)
{
BookComponent cmpObj = (BookComponent)cmp;
if(this.Title.Equals(cmpObj.Title) && this.Author.Equals(cmpObj.Author))
return true; return false;
} public override int GetHashCode()
{
return base.GetHashCode();
}
}
====================
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemcomponentmodelicomponentclasstopic.htm
/// The following example demonstrates the implementation of
/// ISite, IComponent, and IContainer for use in a simple library container.
///
/// This example uses the System, System.ComponentModel, and System.Collections
/// namespaces.
/// </summary> //This code segment implements the ISite and IComponent interfaces.
//The implementation of the IContainer interface can be seen in the documentation
//of IContainer. //Implement the ISite interface. // The ISBNSite class represents the ISBN name of the book component
class ISBNSite : ISite
{
private IComponent m_curComponent;
private IContainer m_curContainer;
private bool m_bDesignMode;
private string m_ISBNCmpName; public ISBNSite(IContainer actvCntr, IComponent prntCmpnt)
{
m_curComponent = prntCmpnt;
m_curContainer = actvCntr;
m_bDesignMode = false;
m_ISBNCmpName = null;
} //Support the ISite interface.
public virtual IComponent Component
{
get
{
return m_curComponent;
}
} public virtual IContainer Container
{
get
{
return m_curContainer;
}
}
public virtual bool DesignMode
{
get
{
return m_bDesignMode;
}
} public virtual string Name
{
get
{
return m_ISBNCmpName;
} set
{
m_ISBNCmpName = value;
}
} //Support the IServiceProvider interface.
public virtual object GetService(Type serviceType)
{
// we are not using any service objects in this example.
return null;
} } // The BookComponent class represents the book component of the library container.
// This class implements the IComponent interface.
class BookComponent : IComponent
{
public event EventHandler Disposed;
private ISite m_curISBNSite;
private string m_bookTitle;
private string m_bookAuthor; public BookComponent(string Title, string Author)
{
m_curISBNSite = null;
Disposed = null;
m_bookTitle = Title;
m_bookAuthor = Author;
} public string Title
{
get
{
return m_bookTitle;
}
} public string Author
{
get
{
return m_bookAuthor;
}
} public virtual void Dispose()
{
//There is nothing to clean.
if(Disposed != null)
Disposed(this,EventArgs.Empty);
} public virtual ISite Site
{
get
{
return m_curISBNSite;
}
set
{
m_curISBNSite = value;
}
} public override bool Equals(object cmp)
{
BookComponent cmpObj = (BookComponent)cmp;
if(this.Title.Equals(cmpObj.Title) && this.Author.Equals(cmpObj.Author))
return true; return false;
} public override int GetHashCode()
{
return base.GetHashCode();
}
}
====================
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemcomponentmodelicomponentclasstopic.htm
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货