Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebParts / WebPartTracker.cs / 1 / WebPartTracker.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls.WebParts {
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing.Design;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class WebPartTracker : IDisposable {
private bool _disposed;
private WebPart _webPart;
private ProviderConnectionPoint _providerConnectionPoint;
public WebPartTracker(WebPart webPart, ProviderConnectionPoint providerConnectionPoint) {
if (webPart == null) {
throw new ArgumentNullException("webPart");
}
if (providerConnectionPoint == null) {
throw new ArgumentNullException("providerConnectionPoint");
}
if (providerConnectionPoint.ControlType != webPart.GetType()) {
throw new ArgumentException(SR.GetString(SR.WebPartManager_InvalidConnectionPoint), "providerConnectionPoint");
}
_webPart = webPart;
_providerConnectionPoint = providerConnectionPoint;
if (++Count > 1) {
webPart.SetConnectErrorMessage(SR.GetString(
SR.WebPartTracker_CircularConnection, _providerConnectionPoint.DisplayName));
}
}
public bool IsCircularConnection {
get {
return (Count > 1);
}
}
private int Count {
get {
int count;
_webPart.TrackerCounter.TryGetValue(_providerConnectionPoint, out count);
return count;
}
set {
_webPart.TrackerCounter[_providerConnectionPoint] = value;
}
}
void IDisposable.Dispose() {
if (!_disposed) {
Debug.Assert(Count >= 1);
Count--;
_disposed = true;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StringSorter.cs
- MessageQueuePermissionEntry.cs
- WebPartExportVerb.cs
- ProviderMetadataCachedInformation.cs
- GridViewPageEventArgs.cs
- CatalogPart.cs
- XmlException.cs
- TextBoxAutomationPeer.cs
- FunctionParameter.cs
- TextParagraphProperties.cs
- CustomGrammar.cs
- Utils.cs
- XmlSerializerFactory.cs
- NativeMethods.cs
- XPathNavigatorKeyComparer.cs
- XmlDictionaryReaderQuotas.cs
- DataException.cs
- DBCommand.cs
- UInt32.cs
- Mouse.cs
- XmlSchemaAnnotated.cs
- DataGridViewButtonColumn.cs
- RegionInfo.cs
- SQLConvert.cs
- SocketCache.cs
- CompositeActivityTypeDescriptorProvider.cs
- InputLanguageCollection.cs
- FilterableAttribute.cs
- XmlSchemaAny.cs
- WindowAutomationPeer.cs
- XsdDuration.cs
- HuffmanTree.cs
- ObjectDataSourceMethodEditor.cs
- SqlCommandSet.cs
- ExtentCqlBlock.cs
- UpdateCommand.cs
- ToolStripItemTextRenderEventArgs.cs
- InvalidTimeZoneException.cs
- InvalidCastException.cs
- ZipIOExtraField.cs
- DPAPIProtectedConfigurationProvider.cs
- DynamicILGenerator.cs
- MasterPageParser.cs
- TileBrush.cs
- ClientSettingsProvider.cs
- sqlinternaltransaction.cs
- EventLogEntryCollection.cs
- TableFieldsEditor.cs
- OutputCacheEntry.cs
- ControlAdapter.cs
- PrivilegedConfigurationManager.cs
- CachedFontFace.cs
- StringReader.cs
- RemotingServices.cs
- loginstatus.cs
- OracleMonthSpan.cs
- Avt.cs
- HttpFormatExtensions.cs
- MsmqTransportReceiveParameters.cs
- Pair.cs
- CalendarAutomationPeer.cs
- HttpModuleCollection.cs
- RangeValidator.cs
- FormatterServices.cs
- TypeListConverter.cs
- securitycriticaldataClass.cs
- BindingContext.cs
- FormsAuthenticationTicket.cs
- ComponentCache.cs
- ApplicationBuildProvider.cs
- XPathSingletonIterator.cs
- ContentOperations.cs
- TreeNode.cs
- SizeAnimationBase.cs
- EntitySqlQueryCacheEntry.cs
- FlowDocumentView.cs
- SchemaCollectionPreprocessor.cs
- SqlBulkCopy.cs
- SymmetricAlgorithm.cs
- DefaultTextStore.cs
- SyntaxCheck.cs
- HwndSubclass.cs
- LockedHandleGlyph.cs
- HtmlControlPersistable.cs
- EdmConstants.cs
- ParentUndoUnit.cs
- ErrorRuntimeConfig.cs
- NamespaceTable.cs
- JpegBitmapEncoder.cs
- Style.cs
- MessageTraceRecord.cs
- CacheEntry.cs
- CollectionDataContractAttribute.cs
- ProtocolElementCollection.cs
- DataStorage.cs
- SqlBuffer.cs
- X509Certificate.cs
- MenuItem.cs
- CaseCqlBlock.cs
- FileDialogPermission.cs