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
- MULTI_QI.cs
- TextDecorationCollection.cs
- HtmlTitle.cs
- Encoder.cs
- WebPartChrome.cs
- ColumnCollection.cs
- SqlCacheDependencySection.cs
- OperationCanceledException.cs
- HttpListenerContext.cs
- SpecialFolderEnumConverter.cs
- DataGridClipboardHelper.cs
- TypeNameConverter.cs
- CipherData.cs
- CalendarTable.cs
- ScaleTransform3D.cs
- SafeNativeHandle.cs
- TableHeaderCell.cs
- KerberosReceiverSecurityToken.cs
- LinearKeyFrames.cs
- PreservationFileWriter.cs
- FilterException.cs
- ImageListStreamer.cs
- TimeIntervalCollection.cs
- MainMenu.cs
- XmlConvert.cs
- XmlElementElementCollection.cs
- XamlSerializationHelper.cs
- EntityModelBuildProvider.cs
- IndexingContentUnit.cs
- EntitySqlException.cs
- SemanticValue.cs
- TaskFactory.cs
- ProviderSettingsCollection.cs
- DataKeyCollection.cs
- OptimisticConcurrencyException.cs
- OperandQuery.cs
- FilteredDataSetHelper.cs
- AlternationConverter.cs
- DecoderFallback.cs
- LinkTarget.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- Int16AnimationUsingKeyFrames.cs
- DeviceContext2.cs
- FilterableAttribute.cs
- MasterPage.cs
- TimeSpan.cs
- TextOutput.cs
- XmlSchemaImporter.cs
- PropertyValueUIItem.cs
- Form.cs
- UrlAuthFailedErrorFormatter.cs
- StrokeNodeEnumerator.cs
- DynamicScriptObject.cs
- DataBindingCollection.cs
- processwaithandle.cs
- FirstQueryOperator.cs
- ObjectDataSourceEventArgs.cs
- RoleService.cs
- IODescriptionAttribute.cs
- ToolStripItemEventArgs.cs
- DrawListViewColumnHeaderEventArgs.cs
- XmlTextWriter.cs
- sqlcontext.cs
- ObjectDataSourceDisposingEventArgs.cs
- Compensate.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- QueryCacheKey.cs
- ObjectListComponentEditor.cs
- IERequestCache.cs
- TemplateNameScope.cs
- TemplateBindingExpressionConverter.cs
- assertwrapper.cs
- WebPartEventArgs.cs
- InvalidPropValue.cs
- _ProxyRegBlob.cs
- SoapClientMessage.cs
- ValidationPropertyAttribute.cs
- XamlFrame.cs
- __FastResourceComparer.cs
- SafeNativeMethodsMilCoreApi.cs
- XmlDataLoader.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ContextProperty.cs
- XmlQueryRuntime.cs
- Expressions.cs
- DataTableTypeConverter.cs
- Panel.cs
- ReceiveMessageContent.cs
- PropertyCollection.cs
- TransportBindingElement.cs
- WebContext.cs
- EventSource.cs
- MgmtConfigurationRecord.cs
- RequestCacheEntry.cs
- SafeArrayRankMismatchException.cs
- ServiceDescriptionSerializer.cs
- UpdateException.cs
- RowBinding.cs
- WebUtil.cs
- SqlWorkflowInstanceStoreLock.cs