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
- BlobPersonalizationState.cs
- SocketException.cs
- EndpointDispatcher.cs
- VectorCollection.cs
- WeakReferenceKey.cs
- Link.cs
- TextSelectionHighlightLayer.cs
- CryptoApi.cs
- DataGridViewColumnHeaderCell.cs
- XmlDigitalSignatureProcessor.cs
- AssociationType.cs
- SqlBulkCopyColumnMappingCollection.cs
- Error.cs
- DiscoveryDocumentLinksPattern.cs
- UserMapPath.cs
- WebPartEditorApplyVerb.cs
- SymbolMethod.cs
- MatrixStack.cs
- XmlNullResolver.cs
- Function.cs
- URLString.cs
- ProxyElement.cs
- BindingsCollection.cs
- ActivityDesignerLayoutSerializers.cs
- DataSourceXmlSerializationAttribute.cs
- SmiXetterAccessMap.cs
- AssemblyHelper.cs
- GeneralTransform2DTo3DTo2D.cs
- FontStyle.cs
- ImpersonateTokenRef.cs
- InertiaTranslationBehavior.cs
- InheritanceAttribute.cs
- DrawingAttributes.cs
- XComponentModel.cs
- SqlCacheDependency.cs
- MonthChangedEventArgs.cs
- RuntimeConfig.cs
- HttpCapabilitiesSectionHandler.cs
- ListSourceHelper.cs
- XmlConvert.cs
- RSAPKCS1SignatureDeformatter.cs
- TypeDelegator.cs
- Window.cs
- EventsTab.cs
- BindingManagerDataErrorEventArgs.cs
- Menu.cs
- SiblingIterators.cs
- PathGradientBrush.cs
- Attribute.cs
- GZipDecoder.cs
- Identity.cs
- TypeNameConverter.cs
- _LazyAsyncResult.cs
- ArrangedElementCollection.cs
- AutoGeneratedField.cs
- ProtocolElementCollection.cs
- Root.cs
- SmtpReplyReaderFactory.cs
- NameScope.cs
- BuildDependencySet.cs
- ToolboxItemCollection.cs
- RegexGroup.cs
- Matrix3D.cs
- _NetworkingPerfCounters.cs
- SqlDataSourceCache.cs
- XmlTextEncoder.cs
- LoaderAllocator.cs
- PersonalizationStateInfo.cs
- InvalidProgramException.cs
- DbConnectionStringCommon.cs
- UnaryExpression.cs
- ConfigXmlWhitespace.cs
- GridViewCellAutomationPeer.cs
- GroupBoxRenderer.cs
- SQLBinary.cs
- Hyperlink.cs
- AssemblyHash.cs
- TextEndOfLine.cs
- PowerStatus.cs
- FixedStringLookup.cs
- TextStore.cs
- AuthenticationService.cs
- FileInfo.cs
- DBBindings.cs
- CodeConstructor.cs
- Relationship.cs
- MergeFailedEvent.cs
- Activity.cs
- ResourceKey.cs
- SourceFilter.cs
- AnonymousIdentificationSection.cs
- HorizontalAlignConverter.cs
- PageBreakRecord.cs
- KeyedCollection.cs
- DataGridCellItemAutomationPeer.cs
- BidirectionalDictionary.cs
- ControlCollection.cs
- HoistedLocals.cs
- ConstraintStruct.cs
- HtmlInputCheckBox.cs