e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
125 lines
3.6 KiB
C#
125 lines
3.6 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="WebContext.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.Configuration {
|
|
using System;
|
|
using System.Configuration;
|
|
using System.Security.Permissions;
|
|
|
|
// WebContext
|
|
//
|
|
// Represents the WebContext that we are running within
|
|
//
|
|
public sealed class WebContext
|
|
{
|
|
private WebApplicationLevel _pathLevel;
|
|
private string _site;
|
|
private string _applicationPath;
|
|
private string _path;
|
|
private string _locationSubPath;
|
|
private string _appConfigPath;
|
|
|
|
// Constructor
|
|
//
|
|
//
|
|
|
|
|
|
public WebContext( WebApplicationLevel pathLevel,
|
|
string site,
|
|
string applicationPath,
|
|
string path,
|
|
string locationSubPath,
|
|
string appConfigPath )
|
|
{
|
|
_pathLevel = pathLevel;
|
|
_site = site;
|
|
_applicationPath = applicationPath;
|
|
_path = path;
|
|
_locationSubPath = locationSubPath;
|
|
_appConfigPath = appConfigPath;
|
|
}
|
|
|
|
//
|
|
// Retrieve the WebApplicationLevel we are being evaluated at
|
|
//
|
|
public WebApplicationLevel ApplicationLevel
|
|
{
|
|
get
|
|
{
|
|
return _pathLevel;
|
|
}
|
|
}
|
|
|
|
// Site
|
|
//
|
|
// What is the name of the Site we are in?
|
|
//
|
|
public string Site
|
|
{
|
|
get
|
|
{
|
|
return _site;
|
|
}
|
|
}
|
|
|
|
// ApplicationPath
|
|
//
|
|
// What is the Application Path for the Application we are
|
|
// being evaluated in
|
|
//
|
|
// Return Values:
|
|
// null - There is no application (ie. machine.config)
|
|
// path - The path of our application
|
|
//
|
|
public string ApplicationPath
|
|
{
|
|
get
|
|
{
|
|
return _applicationPath;
|
|
}
|
|
}
|
|
|
|
// Path
|
|
//
|
|
// What is the virtual path that we are being evaluated at?
|
|
//
|
|
public string Path
|
|
{
|
|
get
|
|
{
|
|
return _path;
|
|
}
|
|
}
|
|
|
|
// LocationSubPath
|
|
//
|
|
// What is the location sub path that we are being evaluated for?
|
|
// This will the same as the value inside the location tag
|
|
// in the config file
|
|
//
|
|
// Return Values:
|
|
// null - no associated location sub path.
|
|
// (This is still the case for ".", "" and it not being
|
|
// specified in the xml file)
|
|
// string - The location path from the config file, after
|
|
// normalization
|
|
//
|
|
public string LocationSubPath
|
|
{
|
|
get
|
|
{
|
|
return _locationSubPath;
|
|
}
|
|
}
|
|
|
|
// WOS 1955773: (Perf) 4,000 location sections in web.config file degrades working set
|
|
// Hack: this is the only way to get this to System.Configuration.BaseConfigurationRecord without introducing a new public API.
|
|
public override string ToString() {
|
|
return _appConfigPath;
|
|
}
|
|
}
|
|
}
|