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
- ResourceDisplayNameAttribute.cs
- DocumentReference.cs
- ProxyWebPart.cs
- PieceNameHelper.cs
- CustomValidator.cs
- ToolStripDropTargetManager.cs
- SplashScreenNativeMethods.cs
- sqlstateclientmanager.cs
- Int32Rect.cs
- TypeToken.cs
- PageContent.cs
- EventLogRecord.cs
- GraphicsPathIterator.cs
- ButtonDesigner.cs
- ResourceSet.cs
- SchemaLookupTable.cs
- InputManager.cs
- SrgsSemanticInterpretationTag.cs
- ExpressionVisitor.cs
- XmlCompatibilityReader.cs
- DESCryptoServiceProvider.cs
- ConnectionPoolManager.cs
- Point4D.cs
- WinFormsUtils.cs
- XmlEnumAttribute.cs
- MeshGeometry3D.cs
- CodeExporter.cs
- ObjectManager.cs
- EventRouteFactory.cs
- PageTextBox.cs
- Thread.cs
- SpeechRecognitionEngine.cs
- AnchoredBlock.cs
- EventRecordWrittenEventArgs.cs
- ModelFunctionTypeElement.cs
- ServiceOperationWrapper.cs
- DataSourceView.cs
- WinInetCache.cs
- XmlConvert.cs
- ProgressBarAutomationPeer.cs
- MultitargetingHelpers.cs
- CompilationSection.cs
- KeysConverter.cs
- ProviderCommandInfoUtils.cs
- Literal.cs
- XmlBoundElement.cs
- BamlResourceDeserializer.cs
- __Filters.cs
- SrgsRulesCollection.cs
- PipeStream.cs
- HtmlTextArea.cs
- ThumbAutomationPeer.cs
- CellQuery.cs
- WmiEventSink.cs
- DashStyle.cs
- StylusPointProperty.cs
- InputScopeAttribute.cs
- RenderDataDrawingContext.cs
- LocalizableResourceBuilder.cs
- StringUtil.cs
- SoapFaultCodes.cs
- xmlsaver.cs
- NumberSubstitution.cs
- BinaryFormatter.cs
- BackStopAuthenticationModule.cs
- ServerIdentity.cs
- InvalidPrinterException.cs
- WebBrowserNavigatedEventHandler.cs
- MethodExpression.cs
- XmlQualifiedNameTest.cs
- MimeFormImporter.cs
- ComEventsMethod.cs
- RevocationPoint.cs
- SQLInt32.cs
- DataKey.cs
- ListParaClient.cs
- TemplatePagerField.cs
- PerformanceCounterPermissionEntryCollection.cs
- ForwardPositionQuery.cs
- Crc32.cs
- LineSegment.cs
- HttpRequestCacheValidator.cs
- HelpProvider.cs
- Or.cs
- Nodes.cs
- Constraint.cs
- ErrorTableItemStyle.cs
- FilteredReadOnlyMetadataCollection.cs
- DataGridViewComboBoxColumnDesigner.cs
- ControlPropertyNameConverter.cs
- TextEmbeddedObject.cs
- CreateParams.cs
- EditingMode.cs
- ClientRoleProvider.cs
- GPRECT.cs
- AncestorChangedEventArgs.cs
- XmlSchemaSubstitutionGroup.cs
- StopRoutingHandler.cs
- ClonableStack.cs
- COM2FontConverter.cs