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
- Brush.cs
- SqlEnums.cs
- CodeChecksumPragma.cs
- SqlMethodAttribute.cs
- ClientScriptManagerWrapper.cs
- CursorConverter.cs
- TreeNodeMouseHoverEvent.cs
- XmlIlGenerator.cs
- TextTreePropertyUndoUnit.cs
- Message.cs
- SqlGenericUtil.cs
- RoleService.cs
- ClockController.cs
- EmptyArray.cs
- XmlUnspecifiedAttribute.cs
- SafeLibraryHandle.cs
- ResourcePermissionBaseEntry.cs
- TargetPerspective.cs
- CharacterBuffer.cs
- CompositeFontInfo.cs
- DataGridRowHeaderAutomationPeer.cs
- WebPartManager.cs
- ImageDrawing.cs
- GlyphCollection.cs
- RuntimeTransactionHandle.cs
- ZeroOpNode.cs
- KnowledgeBase.cs
- CultureSpecificStringDictionary.cs
- _FtpControlStream.cs
- sqlcontext.cs
- OleDbDataAdapter.cs
- TableRow.cs
- Padding.cs
- Descriptor.cs
- unsafenativemethodsother.cs
- GridView.cs
- MouseActionValueSerializer.cs
- EllipticalNodeOperations.cs
- BitStack.cs
- Int32Collection.cs
- XmlText.cs
- SQLDoubleStorage.cs
- SetStoryboardSpeedRatio.cs
- BasicHttpBindingCollectionElement.cs
- ResourceSetExpression.cs
- AnimatedTypeHelpers.cs
- FormParameter.cs
- TextServicesHost.cs
- SafeProcessHandle.cs
- BitmapEffect.cs
- PasswordRecovery.cs
- WebConfigurationHost.cs
- RenderOptions.cs
- ReaderOutput.cs
- ParentUndoUnit.cs
- HiddenFieldPageStatePersister.cs
- Rect3DConverter.cs
- DataGridColumnCollectionEditor.cs
- WpfMemberInvoker.cs
- ValueExpressions.cs
- EntityException.cs
- PaperSource.cs
- XmlAttributes.cs
- EventLogPermissionEntry.cs
- BooleanFacetDescriptionElement.cs
- AutomationFocusChangedEventArgs.cs
- PickBranch.cs
- DataBoundLiteralControl.cs
- DocumentPaginator.cs
- SqlBuilder.cs
- TextEditorLists.cs
- RequestCachePolicyConverter.cs
- StreamResourceInfo.cs
- ClearTypeHintValidation.cs
- AnchoredBlock.cs
- IgnorePropertiesAttribute.cs
- CompoundFileStorageReference.cs
- WebPartHeaderCloseVerb.cs
- CellLabel.cs
- LocalizationComments.cs
- DisposableCollectionWrapper.cs
- TimeStampChecker.cs
- PerformanceCountersElement.cs
- Metadata.cs
- MsmqIntegrationBinding.cs
- UnknownWrapper.cs
- FormsAuthenticationUserCollection.cs
- PrivateFontCollection.cs
- RelationshipFixer.cs
- SimpleFileLog.cs
- OdbcEnvironment.cs
- HttpContext.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- TimeSpanConverter.cs
- SQLCharsStorage.cs
- Drawing.cs
- PageRequestManager.cs
- NativeMethods.cs
- SystemWebExtensionsSectionGroup.cs
- TimeSpanStorage.cs