Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / SiteMap.cs / 1 / SiteMap.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Copyright (c) 2002 Microsoft Corporation
*/
namespace System.Web {
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Provider;
using System.Security.Permissions;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.Hosting;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public static class SiteMap {
internal const string SectionName = "system.web/siteMap";
private static SiteMapProviderCollection _providers;
private static SiteMapProvider _provider;
private static object _lockObject = new object();
private static bool _configEnabledEvaluated;
private static bool _enabled;
public static SiteMapNode CurrentNode {
get {
return Provider.CurrentNode;
}
}
public static bool Enabled {
get {
if (!_configEnabledEvaluated) {
SiteMapSection config = RuntimeConfig.GetAppConfig().SiteMap;
_enabled = (config != null && config.Enabled);
_configEnabledEvaluated = true;
}
return _enabled;
}
}
public static SiteMapProvider Provider {
get {
Initialize();
return _provider;
}
}
public static SiteMapProviderCollection Providers {
get {
Initialize();
return _providers;
}
}
public static SiteMapNode RootNode {
get {
SiteMapProvider rootProvider = Provider.RootProvider;
SiteMapNode rootNode = rootProvider.RootNode;
if (rootNode == null) {
String name = ((ProviderBase)rootProvider).Name;
throw new InvalidOperationException(SR.GetString(SR.SiteMapProvider_Invalid_RootNode, name));
}
return rootNode;
}
}
public static event SiteMapResolveEventHandler SiteMapResolve {
add {
Provider.SiteMapResolve += value;
}
remove {
Provider.SiteMapResolve -= value;
}
}
private static void Initialize() {
if (_providers != null)
return;
HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level);
lock (_lockObject) {
if (_providers != null)
return;
SiteMapSection config = RuntimeConfig.GetAppConfig().SiteMap;
if (config == null) {
// just return an empty collection so that designer will work.
_providers = new SiteMapProviderCollection();
return;
}
if (!config.Enabled)
throw new InvalidOperationException(SR.GetString(SR.SiteMap_feature_disabled, SiteMap.SectionName));
// Make sure the default provider exists.
config.ValidateDefaultProvider();
_providers = config.ProvidersInternal;
_provider = _providers[config.DefaultProvider];
_providers.SetReadOnly();
}
}
}
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class SiteMapProviderCollection : ProviderCollection {
public override void Add(ProviderBase provider) {
if (provider == null)
throw new ArgumentNullException("provider");
if (!(provider is SiteMapProvider))
throw new ArgumentException(SR.GetString(
SR.Provider_must_implement_the_interface, provider.GetType().Name, typeof(SiteMapProvider).Name), "provider");
Add((SiteMapProvider)provider);
}
public void Add(SiteMapProvider provider) {
if (provider == null) {
throw new ArgumentNullException("provider");
}
base.Add(provider);
}
public void AddArray(SiteMapProvider [] providerArray) {
if (providerArray == null) {
throw new ArgumentNullException("providerArray");
}
foreach (SiteMapProvider provider in providerArray) {
if (this[provider.Name] != null)
throw new ArgumentException(SR.GetString(SR.SiteMapProvider_Multiple_Providers_With_Identical_Name, provider.Name));
Add(provider);
}
}
public new SiteMapProvider this[string name] {
get {
return (SiteMapProvider) base[name];
}
}
}
public delegate SiteMapNode SiteMapResolveEventHandler(Object sender, SiteMapResolveEventArgs e);
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class SiteMapResolveEventArgs : EventArgs {
private HttpContext _context;
private SiteMapProvider _provider;
public SiteMapResolveEventArgs(HttpContext context, SiteMapProvider provider) {
_context = context;
_provider = provider;
}
public SiteMapProvider Provider {
get {
return _provider;
}
}
public HttpContext Context {
get {
return _context;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Copyright (c) 2002 Microsoft Corporation
*/
namespace System.Web {
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Provider;
using System.Security.Permissions;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.Hosting;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public static class SiteMap {
internal const string SectionName = "system.web/siteMap";
private static SiteMapProviderCollection _providers;
private static SiteMapProvider _provider;
private static object _lockObject = new object();
private static bool _configEnabledEvaluated;
private static bool _enabled;
public static SiteMapNode CurrentNode {
get {
return Provider.CurrentNode;
}
}
public static bool Enabled {
get {
if (!_configEnabledEvaluated) {
SiteMapSection config = RuntimeConfig.GetAppConfig().SiteMap;
_enabled = (config != null && config.Enabled);
_configEnabledEvaluated = true;
}
return _enabled;
}
}
public static SiteMapProvider Provider {
get {
Initialize();
return _provider;
}
}
public static SiteMapProviderCollection Providers {
get {
Initialize();
return _providers;
}
}
public static SiteMapNode RootNode {
get {
SiteMapProvider rootProvider = Provider.RootProvider;
SiteMapNode rootNode = rootProvider.RootNode;
if (rootNode == null) {
String name = ((ProviderBase)rootProvider).Name;
throw new InvalidOperationException(SR.GetString(SR.SiteMapProvider_Invalid_RootNode, name));
}
return rootNode;
}
}
public static event SiteMapResolveEventHandler SiteMapResolve {
add {
Provider.SiteMapResolve += value;
}
remove {
Provider.SiteMapResolve -= value;
}
}
private static void Initialize() {
if (_providers != null)
return;
HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level);
lock (_lockObject) {
if (_providers != null)
return;
SiteMapSection config = RuntimeConfig.GetAppConfig().SiteMap;
if (config == null) {
// just return an empty collection so that designer will work.
_providers = new SiteMapProviderCollection();
return;
}
if (!config.Enabled)
throw new InvalidOperationException(SR.GetString(SR.SiteMap_feature_disabled, SiteMap.SectionName));
// Make sure the default provider exists.
config.ValidateDefaultProvider();
_providers = config.ProvidersInternal;
_provider = _providers[config.DefaultProvider];
_providers.SetReadOnly();
}
}
}
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class SiteMapProviderCollection : ProviderCollection {
public override void Add(ProviderBase provider) {
if (provider == null)
throw new ArgumentNullException("provider");
if (!(provider is SiteMapProvider))
throw new ArgumentException(SR.GetString(
SR.Provider_must_implement_the_interface, provider.GetType().Name, typeof(SiteMapProvider).Name), "provider");
Add((SiteMapProvider)provider);
}
public void Add(SiteMapProvider provider) {
if (provider == null) {
throw new ArgumentNullException("provider");
}
base.Add(provider);
}
public void AddArray(SiteMapProvider [] providerArray) {
if (providerArray == null) {
throw new ArgumentNullException("providerArray");
}
foreach (SiteMapProvider provider in providerArray) {
if (this[provider.Name] != null)
throw new ArgumentException(SR.GetString(SR.SiteMapProvider_Multiple_Providers_With_Identical_Name, provider.Name));
Add(provider);
}
}
public new SiteMapProvider this[string name] {
get {
return (SiteMapProvider) base[name];
}
}
}
public delegate SiteMapNode SiteMapResolveEventHandler(Object sender, SiteMapResolveEventArgs e);
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class SiteMapResolveEventArgs : EventArgs {
private HttpContext _context;
private SiteMapProvider _provider;
public SiteMapResolveEventArgs(HttpContext context, SiteMapProvider provider) {
_context = context;
_provider = provider;
}
public SiteMapProvider Provider {
get {
return _provider;
}
}
public HttpContext Context {
get {
return _context;
}
}
}
}
// 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
- SystemTcpConnection.cs
- CheckedPointers.cs
- ListBox.cs
- ConvertersCollection.cs
- Encoding.cs
- FixedDocument.cs
- WebSysDescriptionAttribute.cs
- NonClientArea.cs
- TrustSection.cs
- TypeDependencyAttribute.cs
- EncryptedXml.cs
- FileIOPermission.cs
- DataMemberListEditor.cs
- PageParser.cs
- DecimalKeyFrameCollection.cs
- DiffuseMaterial.cs
- SrgsSubset.cs
- GeneralTransform.cs
- ColumnReorderedEventArgs.cs
- XmlSchemaSimpleType.cs
- BufferBuilder.cs
- StatusBarPanelClickEvent.cs
- HelloMessageApril2005.cs
- KnownBoxes.cs
- TextClipboardData.cs
- WithParamAction.cs
- CTreeGenerator.cs
- ListControlConvertEventArgs.cs
- GeometryDrawing.cs
- Match.cs
- NameValueFileSectionHandler.cs
- BindingsCollection.cs
- FixedStringLookup.cs
- Keyboard.cs
- StylusPointCollection.cs
- ArgumentOutOfRangeException.cs
- PageAdapter.cs
- FileUtil.cs
- WindowsPrincipal.cs
- DoubleLink.cs
- ZipIOCentralDirectoryFileHeader.cs
- SiteMembershipCondition.cs
- SafeCoTaskMem.cs
- AmbiguousMatchException.cs
- Rijndael.cs
- UndoManager.cs
- QuaternionRotation3D.cs
- DiagnosticsElement.cs
- ImageListStreamer.cs
- SmtpNegotiateAuthenticationModule.cs
- MultipartContentParser.cs
- AssemblyBuilder.cs
- PrintingPermission.cs
- EndPoint.cs
- AsymmetricAlgorithm.cs
- ProcessInfo.cs
- ListenerElementsCollection.cs
- ConfigXmlSignificantWhitespace.cs
- KeyBinding.cs
- DataComponentMethodGenerator.cs
- CollectionCodeDomSerializer.cs
- GeometryCombineModeValidation.cs
- EnumerableCollectionView.cs
- DocumentXPathNavigator.cs
- QuadTree.cs
- SequenceFullException.cs
- CellParagraph.cs
- EntityDataSourceChangedEventArgs.cs
- VersionPair.cs
- PlatformCulture.cs
- BorderGapMaskConverter.cs
- DesignerActionGlyph.cs
- _NetworkingPerfCounters.cs
- LinkLabelLinkClickedEvent.cs
- DBProviderConfigurationHandler.cs
- TextTrailingCharacterEllipsis.cs
- CatalogPartChrome.cs
- PersonalizationEntry.cs
- ParseNumbers.cs
- PermissionRequestEvidence.cs
- InheritanceAttribute.cs
- AsymmetricSignatureFormatter.cs
- InputScopeAttribute.cs
- CheckBoxField.cs
- ButtonAutomationPeer.cs
- XmlQueryTypeFactory.cs
- OverrideMode.cs
- MergeLocalizationDirectives.cs
- Triplet.cs
- OpenFileDialog.cs
- XPathBuilder.cs
- NetMsmqBinding.cs
- SHA1CryptoServiceProvider.cs
- StylusLogic.cs
- DataMemberConverter.cs
- JavaScriptObjectDeserializer.cs
- VersionPair.cs
- ValidatorCollection.cs
- Point3DAnimationUsingKeyFrames.cs
- OrthographicCamera.cs