e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
86 lines
2.6 KiB
C#
86 lines
2.6 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="ContextInformation.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
using System;
|
|
|
|
namespace System.Configuration
|
|
{
|
|
|
|
// ContextInformation
|
|
//
|
|
// Class that encapsulates all of the Context Information that
|
|
// is going to be associated with a ConfigurationElement
|
|
//
|
|
public sealed class ContextInformation
|
|
{
|
|
private bool _hostingContextEvaluated; // Do we know the Context?
|
|
private object _hostingContext; // HostingContext
|
|
private BaseConfigurationRecord _configRecord;
|
|
|
|
// Constructor
|
|
//
|
|
//
|
|
internal ContextInformation( BaseConfigurationRecord configRecord )
|
|
{
|
|
Debug.Assert(configRecord != null, "configRecord != null");
|
|
|
|
_hostingContextEvaluated = false;
|
|
_hostingContext = null;
|
|
_configRecord = configRecord;
|
|
}
|
|
|
|
// HostingContext
|
|
//
|
|
// Retrieve the Context of the environment that we are being
|
|
// evaluated in. (currently this can we WebContext, ExeContext,
|
|
// or null)
|
|
//
|
|
public object HostingContext
|
|
{
|
|
get
|
|
{
|
|
if ( !_hostingContextEvaluated )
|
|
{
|
|
// Retrieve Context
|
|
_hostingContext = _configRecord.ConfigContext;
|
|
|
|
_hostingContextEvaluated = true;
|
|
}
|
|
|
|
return _hostingContext;
|
|
}
|
|
}
|
|
|
|
// IsMachineLevel
|
|
//
|
|
// Is this the machine.config file or not? If it is not
|
|
// then use the Hosting Context to determine where you are
|
|
// and in what hierarchy you are in
|
|
//
|
|
public bool IsMachineLevel
|
|
{
|
|
get
|
|
{
|
|
return _configRecord.IsMachineConfig;
|
|
}
|
|
}
|
|
|
|
// GetSection
|
|
//
|
|
// Get a Section within the context of where we are. What
|
|
// ever section you retrieve here will be at the same level
|
|
// in the hierarchy as we are.
|
|
//
|
|
// Note: Watch out for a situation where you request a section
|
|
// that will call you.
|
|
//
|
|
public object GetSection(string sectionName)
|
|
{
|
|
return _configRecord.GetSection(sectionName);
|
|
}
|
|
}
|
|
}
|