Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 2 / HostingPreferredMapPath.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Configuration; using System.Collections; using System.Globalization; using System.Xml; using System.Text; using System.Web.Util; using System.Web.UI; using System.IO; using System.Web.Hosting; // // IConfigMapPath that uses the HostingEnvironment's IConfigMapPath for // paths that it maps, and uses the web server IConfigMapPath for // all other paths. // // This allows us to use mappings for an app using SimpleApplicationHost, // while still correctly mapping paths outside the app. // class HostingPreferredMapPath : IConfigMapPath { IConfigMapPath _iisConfigMapPath; IConfigMapPath _hostingConfigMapPath; internal static IConfigMapPath GetInstance() { IConfigMapPath iisConfigMapPath = IISMapPath.GetInstance(); IConfigMapPath hostingConfigMapPath = HostingEnvironment.ConfigMapPath; // Only delegate if the types implementing IConfigMapPath are different. if (hostingConfigMapPath == null || iisConfigMapPath.GetType() == hostingConfigMapPath.GetType()) return iisConfigMapPath; return new HostingPreferredMapPath(iisConfigMapPath, hostingConfigMapPath); } HostingPreferredMapPath(IConfigMapPath iisConfigMapPath, IConfigMapPath hostingConfigMapPath) { _iisConfigMapPath = iisConfigMapPath; _hostingConfigMapPath = hostingConfigMapPath; } public string GetMachineConfigFilename() { string filename = _hostingConfigMapPath.GetMachineConfigFilename(); if (string.IsNullOrEmpty(filename)) { filename = _iisConfigMapPath.GetMachineConfigFilename(); } return filename; } public string GetRootWebConfigFilename() { string filename = _hostingConfigMapPath.GetRootWebConfigFilename(); if (string.IsNullOrEmpty(filename)) { filename = _iisConfigMapPath.GetRootWebConfigFilename(); } return filename; } public void GetPathConfigFilename( string siteID, string path, out string directory, out string baseName) { _hostingConfigMapPath.GetPathConfigFilename(siteID, path, out directory, out baseName); if (string.IsNullOrEmpty(directory)) { _iisConfigMapPath.GetPathConfigFilename(siteID, path, out directory, out baseName); } } public void GetDefaultSiteNameAndID(out string siteName, out string siteID) { _hostingConfigMapPath.GetDefaultSiteNameAndID(out siteName, out siteID); if (string.IsNullOrEmpty(siteID)) { _iisConfigMapPath.GetDefaultSiteNameAndID(out siteName, out siteID); } } public void ResolveSiteArgument(string siteArgument, out string siteName, out string siteID) { _hostingConfigMapPath.ResolveSiteArgument(siteArgument, out siteName, out siteID); if (string.IsNullOrEmpty(siteID)) { _iisConfigMapPath.ResolveSiteArgument(siteArgument, out siteName, out siteID); } } public string MapPath(string siteID, string path) { string physicalPath = _hostingConfigMapPath.MapPath(siteID, path); if (string.IsNullOrEmpty(physicalPath)) { physicalPath = _iisConfigMapPath.MapPath(siteID, path); } return physicalPath; } public string GetAppPathForPath(string siteID, string path) { string appPath = _hostingConfigMapPath.GetAppPathForPath(siteID, path); if (appPath == null) { appPath = _iisConfigMapPath.GetAppPathForPath(siteID, path); } return appPath; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AbstractDataSvcMapFileLoader.cs
- HashMembershipCondition.cs
- WindowsScrollBar.cs
- FormViewPageEventArgs.cs
- FactoryRecord.cs
- PreProcessor.cs
- MultiplexingDispatchMessageFormatter.cs
- Misc.cs
- SoapSchemaImporter.cs
- DesignDataSource.cs
- followingsibling.cs
- CollectionEditVerbManager.cs
- Point3DConverter.cs
- MailHeaderInfo.cs
- LineServicesRun.cs
- DirtyTextRange.cs
- UserControlCodeDomTreeGenerator.cs
- SqlTypesSchemaImporter.cs
- AggregateNode.cs
- XmlnsDefinitionAttribute.cs
- WebServiceErrorEvent.cs
- StructuredTypeInfo.cs
- ping.cs
- ModelItemDictionary.cs
- ScriptReferenceEventArgs.cs
- JsonWriter.cs
- SevenBitStream.cs
- SearchForVirtualItemEventArgs.cs
- LogExtentCollection.cs
- Stroke.cs
- XmlBinaryReader.cs
- MenuItem.cs
- DataSetMappper.cs
- LocationInfo.cs
- GlobalProxySelection.cs
- OracleBoolean.cs
- FormatterServicesNoSerializableCheck.cs
- GetFileNameResult.cs
- SpellCheck.cs
- RbTree.cs
- RIPEMD160Managed.cs
- SqlRowUpdatedEvent.cs
- Set.cs
- List.cs
- WSFederationHttpBindingCollectionElement.cs
- MILUtilities.cs
- TextElementEnumerator.cs
- SQLMoneyStorage.cs
- httpapplicationstate.cs
- GridEntryCollection.cs
- XAMLParseException.cs
- NamedElement.cs
- XmlArrayItemAttributes.cs
- ExpressionBuilder.cs
- XmlAutoDetectWriter.cs
- ActiveXHelper.cs
- XmlIgnoreAttribute.cs
- _HeaderInfo.cs
- MetadataCache.cs
- EventWaitHandleSecurity.cs
- assemblycache.cs
- ConfigurationConverterBase.cs
- DbConnectionHelper.cs
- ColorConvertedBitmap.cs
- XPathNode.cs
- DateTimeOffset.cs
- Serializer.cs
- CheckBox.cs
- URLString.cs
- MetadataArtifactLoader.cs
- CodeDefaultValueExpression.cs
- XmlChildEnumerator.cs
- ReadOnlyKeyedCollection.cs
- PropertyGridEditorPart.cs
- DataRelationPropertyDescriptor.cs
- ActiveXContainer.cs
- ReliableMessagingVersionConverter.cs
- PeerEndPoint.cs
- reliableinputsessionchannel.cs
- DeploymentSection.cs
- DataConnectionHelper.cs
- GenericWebPart.cs
- NavigationPropertyEmitter.cs
- BuildResultCache.cs
- Profiler.cs
- XmlCharacterData.cs
- FormsAuthentication.cs
- BulletedListEventArgs.cs
- AsyncCompletedEventArgs.cs
- HotSpotCollection.cs
- XslCompiledTransform.cs
- XmlSchemaAll.cs
- TextTreeFixupNode.cs
- FormClosedEvent.cs
- EditorZoneBase.cs
- ControlAdapter.cs
- CategoriesDocumentFormatter.cs
- NativeMethods.cs
- DBSchemaRow.cs
- DataReaderContainer.cs