Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / ComponentModel / MarshalByValueComponent.cs / 1 / MarshalByValueComponent.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.ComponentModel.Design;
using System.Diagnostics.CodeAnalysis;
using System.Security.Permissions;
using System.Runtime.InteropServices;
///
/// Provides the base implementation for ,
/// which is the base class for all components in Win Forms.
///
[
ComVisible(true),
Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, " + AssemblyRef.SystemDesign, typeof(IRootDesigner)),
DesignerCategory("Component"),
TypeConverter(typeof(ComponentConverter))
]
public class MarshalByValueComponent : IComponent, IServiceProvider {
///
/// Static hask key for the Disposed event. This field is read-only.
///
private static readonly object EventDisposed = new object();
private ISite site;
private EventHandlerList events;
///
/// Initializes a new instance of the class.
///
public MarshalByValueComponent() {
}
~MarshalByValueComponent() {
Dispose(false);
}
///
/// Adds a event handler to listen to the Disposed event on the component.
///
public event EventHandler Disposed {
add {
Events.AddHandler(EventDisposed, value);
}
remove {
Events.RemoveHandler(EventDisposed, value);
}
}
///
/// Gets the list of event handlers that are attached to this component.
///
protected EventHandlerList Events {
get {
if (events == null) {
events = new EventHandlerList();
}
return events;
}
}
///
/// Gets or sets the site of the component.
///
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual ISite Site {
get { return site;}
set { site = value;}
}
///
/// Disposes of the resources (other than memory) used by the component.
///
[SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed")]
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
///
///
/// Disposes all the resources associated with this component.
/// If disposing is false then you must never touch any other
/// managed objects, as they may already be finalized. When
/// in this state you should dispose any native resources
/// that you have a reference to.
///
///
/// When disposing is true then you should dispose all data
/// and objects you have references to. The normal implementation
/// of this method would look something like:
///
///
/// public void Dispose() {
/// Dispose(true);
/// GC.SuppressFinalize(this);
/// }
///
/// protected virtual void Dispose(bool disposing) {
/// if (disposing) {
/// if (myobject != null) {
/// myobject.Dispose();
/// myobject = null;
/// }
/// }
/// if (myhandle != IntPtr.Zero) {
/// NativeMethods.Release(myhandle);
/// myhandle = IntPtr.Zero;
/// }
/// }
///
/// ~MyClass() {
/// Dispose(false);
/// }
///
///
/// For base classes, you should never override the Finalier (~Class in C#)
/// or the Dispose method that takes no arguments, rather you should
/// always override the Dispose method that takes a bool.
///
///
/// protected override void Dispose(bool disposing) {
/// if (disposing) {
/// if (myobject != null) {
/// myobject.Dispose();
/// myobject = null;
/// }
/// }
/// if (myhandle != IntPtr.Zero) {
/// NativeMethods.Release(myhandle);
/// myhandle = IntPtr.Zero;
/// }
/// base.Dispose(disposing);
/// }
///
///
protected virtual void Dispose(bool disposing) {
if (disposing) {
lock(this) {
if (site != null && site.Container != null) {
site.Container.Remove(this);
}
if (events != null) {
EventHandler handler = (EventHandler)events[EventDisposed];
if (handler != null) handler(this, EventArgs.Empty);
}
}
}
}
///
/// Gets the container for the component.
///
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual IContainer Container {
get {
ISite s = site;
return s == null ? null : s.Container;
}
}
///
/// Gets the implementer of the .
///
public virtual object GetService(Type service) {
return((site==null)? null : site.GetService(service));
}
///
/// Gets a value indicating whether the component is currently in design mode.
///
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual bool DesignMode {
get {
ISite s = site;
return(s == null) ? false : s.DesignMode;
}
}
///
///
///
/// Returns a containing the name of the , if any. This method should not be
/// overridden. For
/// internal use only.
///
///
public override String ToString() {
ISite s = site;
if (s != null)
return s.Name + " [" + GetType().FullName + "]";
else
return GetType().FullName;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.ComponentModel.Design;
using System.Diagnostics.CodeAnalysis;
using System.Security.Permissions;
using System.Runtime.InteropServices;
///
/// Provides the base implementation for ,
/// which is the base class for all components in Win Forms.
///
[
ComVisible(true),
Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, " + AssemblyRef.SystemDesign, typeof(IRootDesigner)),
DesignerCategory("Component"),
TypeConverter(typeof(ComponentConverter))
]
public class MarshalByValueComponent : IComponent, IServiceProvider {
///
/// Static hask key for the Disposed event. This field is read-only.
///
private static readonly object EventDisposed = new object();
private ISite site;
private EventHandlerList events;
///
/// Initializes a new instance of the class.
///
public MarshalByValueComponent() {
}
~MarshalByValueComponent() {
Dispose(false);
}
///
/// Adds a event handler to listen to the Disposed event on the component.
///
public event EventHandler Disposed {
add {
Events.AddHandler(EventDisposed, value);
}
remove {
Events.RemoveHandler(EventDisposed, value);
}
}
///
/// Gets the list of event handlers that are attached to this component.
///
protected EventHandlerList Events {
get {
if (events == null) {
events = new EventHandlerList();
}
return events;
}
}
///
/// Gets or sets the site of the component.
///
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual ISite Site {
get { return site;}
set { site = value;}
}
///
/// Disposes of the resources (other than memory) used by the component.
///
[SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed")]
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
///
///
/// Disposes all the resources associated with this component.
/// If disposing is false then you must never touch any other
/// managed objects, as they may already be finalized. When
/// in this state you should dispose any native resources
/// that you have a reference to.
///
///
/// When disposing is true then you should dispose all data
/// and objects you have references to. The normal implementation
/// of this method would look something like:
///
///
/// public void Dispose() {
/// Dispose(true);
/// GC.SuppressFinalize(this);
/// }
///
/// protected virtual void Dispose(bool disposing) {
/// if (disposing) {
/// if (myobject != null) {
/// myobject.Dispose();
/// myobject = null;
/// }
/// }
/// if (myhandle != IntPtr.Zero) {
/// NativeMethods.Release(myhandle);
/// myhandle = IntPtr.Zero;
/// }
/// }
///
/// ~MyClass() {
/// Dispose(false);
/// }
///
///
/// For base classes, you should never override the Finalier (~Class in C#)
/// or the Dispose method that takes no arguments, rather you should
/// always override the Dispose method that takes a bool.
///
///
/// protected override void Dispose(bool disposing) {
/// if (disposing) {
/// if (myobject != null) {
/// myobject.Dispose();
/// myobject = null;
/// }
/// }
/// if (myhandle != IntPtr.Zero) {
/// NativeMethods.Release(myhandle);
/// myhandle = IntPtr.Zero;
/// }
/// base.Dispose(disposing);
/// }
///
///
protected virtual void Dispose(bool disposing) {
if (disposing) {
lock(this) {
if (site != null && site.Container != null) {
site.Container.Remove(this);
}
if (events != null) {
EventHandler handler = (EventHandler)events[EventDisposed];
if (handler != null) handler(this, EventArgs.Empty);
}
}
}
}
///
/// Gets the container for the component.
///
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual IContainer Container {
get {
ISite s = site;
return s == null ? null : s.Container;
}
}
///
/// Gets the implementer of the .
///
public virtual object GetService(Type service) {
return((site==null)? null : site.GetService(service));
}
///
/// Gets a value indicating whether the component is currently in design mode.
///
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual bool DesignMode {
get {
ISite s = site;
return(s == null) ? false : s.DesignMode;
}
}
///
///
///
/// Returns a containing the name of the , if any. This method should not be
/// overridden. For
/// internal use only.
///
///
public override String ToString() {
ISite s = site;
if (s != null)
return s.Name + " [" + GetType().FullName + "]";
else
return GetType().FullName;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SchemaElementDecl.cs
- OleDbDataReader.cs
- NativeMethodsOther.cs
- DesignerActionKeyboardBehavior.cs
- InfoCardTrace.cs
- CompilationPass2TaskInternal.cs
- FactorySettingsElement.cs
- BaseDataListDesigner.cs
- LinqTreeNodeEvaluator.cs
- RegexCode.cs
- CodeArrayCreateExpression.cs
- DynamicActivity.cs
- NegotiateStream.cs
- DbMetaDataColumnNames.cs
- Compiler.cs
- WinCategoryAttribute.cs
- DataGridCaption.cs
- Avt.cs
- HtmlLink.cs
- MethodCallConverter.cs
- NativeMethods.cs
- LocationReferenceValue.cs
- StateMachineWorkflowDesigner.cs
- CngAlgorithmGroup.cs
- WpfSharedXamlSchemaContext.cs
- MimeTypeAttribute.cs
- SoapInteropTypes.cs
- DrawingContextWalker.cs
- XmlHierarchicalEnumerable.cs
- ListView.cs
- EnvelopedPkcs7.cs
- HuffModule.cs
- DataConnectionHelper.cs
- HttpPostedFile.cs
- StreamMarshaler.cs
- ProtocolImporter.cs
- DataGridViewTextBoxCell.cs
- QueryExecutionOption.cs
- ClientScriptItemCollection.cs
- WinInetCache.cs
- TextFormatter.cs
- LabelTarget.cs
- VariableBinder.cs
- SmtpReplyReader.cs
- recordstatefactory.cs
- DtdParser.cs
- StringOutput.cs
- GridViewUpdatedEventArgs.cs
- SafeNativeMethods.cs
- ReturnValue.cs
- MatchingStyle.cs
- TextInfo.cs
- PlanCompilerUtil.cs
- HMACSHA1.cs
- AtomServiceDocumentSerializer.cs
- XhtmlBasicCommandAdapter.cs
- CollectionContainer.cs
- AssemblySettingAttributes.cs
- InfoCardTrace.cs
- CommonObjectSecurity.cs
- MenuItem.cs
- XmlNodeReader.cs
- CmsInterop.cs
- TransformerInfoCollection.cs
- IsolatedStoragePermission.cs
- ConditionValidator.cs
- RegistrationServices.cs
- HtmlString.cs
- ProcessModelInfo.cs
- LayoutUtils.cs
- PinnedBufferMemoryStream.cs
- TypeNameConverter.cs
- TextBreakpoint.cs
- FormClosedEvent.cs
- StrokeCollectionConverter.cs
- ShimAsPublicXamlType.cs
- TabControl.cs
- EventData.cs
- LambdaValue.cs
- PrePrepareMethodAttribute.cs
- PasswordBox.cs
- PropertyEmitterBase.cs
- InlineObject.cs
- SchemaReference.cs
- AtlasWeb.Designer.cs
- FilterQueryOptionExpression.cs
- Attribute.cs
- OneOfElement.cs
- XMLSchema.cs
- RightsManagementEncryptedStream.cs
- PersonalizablePropertyEntry.cs
- DataGridViewComboBoxCell.cs
- RijndaelCryptoServiceProvider.cs
- BadImageFormatException.cs
- TextBox.cs
- ReferenceSchema.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- WindowsButton.cs
- AggregationMinMaxHelpers.cs
- BrowserCapabilitiesCompiler.cs