Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / Util / UrlPath.cs / 1 / UrlPath.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.Util { using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Web.UI.Design; ////// Helper class for URLs. /// The only method in this class is borrowed directly from the runtime's /// System.Web.Util.UrlPath class. /// internal class UrlPath { // Only static methods, so hide constructor. private UrlPath() { } ////// Returns true if the path is an absolute physical path. /// private static bool IsAbsolutePhysicalPath(string path) { if (path == null || path.Length < 3) return false; if (path.StartsWith("\\\\", StringComparison.Ordinal)) return true; return (Char.IsLetter(path[0]) && path[1] == ':' && path[2] == '\\'); } ////// Maps an arbitrary path (physical absolute, app-relative, relative) to /// a physical path using designer host services. If the path cannot be /// mapped because certain services are not present, null is returned. /// internal static string MapPath(IServiceProvider serviceProvider, string path) { if (path.Length == 0) { return null; } if (IsAbsolutePhysicalPath(path)) { // Absolute path return path; } else { // Root relative path - use designer host service to map the path WebFormsRootDesigner rootDesigner = null; if (serviceProvider != null) { IDesignerHost designerHost = (IDesignerHost)serviceProvider.GetService(typeof(IDesignerHost)); if ((designerHost != null) && (designerHost.RootComponent != null)) { rootDesigner = designerHost.GetDesigner(designerHost.RootComponent) as WebFormsRootDesigner; if (rootDesigner != null) { string resolvedUrl = rootDesigner.ResolveUrl(path); // Use the WebApplication server to get a physical path from the app-relative path IWebApplication webApplicationService = (IWebApplication)serviceProvider.GetService(typeof(IWebApplication)); if (webApplicationService != null) { IProjectItem dataFileProjectItem = webApplicationService.GetProjectItemFromUrl(resolvedUrl); if (dataFileProjectItem != null) { return dataFileProjectItem.PhysicalPath; } } } } } } // Could not get service to map path, return null return null; } } } // 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
- OledbConnectionStringbuilder.cs
- XPathNodeInfoAtom.cs
- _PooledStream.cs
- InternalBase.cs
- TransformConverter.cs
- WebServiceEndpoint.cs
- FlowDocumentView.cs
- CopyAttributesAction.cs
- XmlSortKeyAccumulator.cs
- ValidationHelper.cs
- InternalCache.cs
- GridViewUpdateEventArgs.cs
- ConcurrentQueue.cs
- SlotInfo.cs
- CharacterBufferReference.cs
- FilteredDataSetHelper.cs
- IISMapPath.cs
- SQlBooleanStorage.cs
- ParameterBuilder.cs
- SerTrace.cs
- StorageMappingItemCollection.cs
- AssemblyEvidenceFactory.cs
- ServiceMetadataBehavior.cs
- GraphicsContext.cs
- Line.cs
- ChtmlCommandAdapter.cs
- XmlEventCache.cs
- DelegatingHeader.cs
- IssuedTokenParametersEndpointAddressElement.cs
- DataGridViewCellConverter.cs
- PathGeometry.cs
- AnonymousIdentificationSection.cs
- InputScopeManager.cs
- Rotation3DAnimation.cs
- DBSqlParserTable.cs
- DocumentOrderQuery.cs
- HttpProfileBase.cs
- InstrumentationTracker.cs
- TemplatedWizardStep.cs
- MgmtResManager.cs
- ExecutionContext.cs
- ExclusiveNamedPipeTransportManager.cs
- ToolBar.cs
- Journaling.cs
- FunctionDetailsReader.cs
- ProjectedWrapper.cs
- SymmetricAlgorithm.cs
- StatusBarAutomationPeer.cs
- InternalRelationshipCollection.cs
- PtsCache.cs
- Aes.cs
- TextPointerBase.cs
- TraceContextEventArgs.cs
- KeyValuePairs.cs
- CodeExporter.cs
- ImmutableClientRuntime.cs
- sqlcontext.cs
- XmlQueryType.cs
- Calendar.cs
- SessionSwitchEventArgs.cs
- ExtenderControl.cs
- ServerValidateEventArgs.cs
- _SSPISessionCache.cs
- DataGridViewHeaderCell.cs
- _FtpDataStream.cs
- WorkflowStateRollbackService.cs
- MenuItemCollection.cs
- DBSchemaRow.cs
- TileModeValidation.cs
- ClientType.cs
- EditorPartChrome.cs
- TargetConverter.cs
- SqlCommandSet.cs
- CodeNamespaceImportCollection.cs
- ContractReference.cs
- StateBag.cs
- XmlEncoding.cs
- BevelBitmapEffect.cs
- SByte.cs
- LinqToSqlWrapper.cs
- SourceFileInfo.cs
- SortableBindingList.cs
- SoapSchemaImporter.cs
- HtmlHead.cs
- GlyphsSerializer.cs
- XamlSerializerUtil.cs
- DPCustomTypeDescriptor.cs
- ProfileService.cs
- HttpCookieCollection.cs
- ParameterBuilder.cs
- ResponseBodyWriter.cs
- PTProvider.cs
- ButtonBase.cs
- MultiTrigger.cs
- TabPageDesigner.cs
- Behavior.cs
- _HeaderInfoTable.cs
- LocationInfo.cs
- NativeCompoundFileAPIs.cs
- DesignerLoader.cs