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
- StrongTypingException.cs
- Types.cs
- DetailsViewCommandEventArgs.cs
- CatalogZoneBase.cs
- TextFormatterImp.cs
- AdapterUtil.cs
- EnumValAlphaComparer.cs
- BaseDataListPage.cs
- CallContext.cs
- TokenBasedSetEnumerator.cs
- HwndStylusInputProvider.cs
- UnsafeNativeMethods.cs
- JulianCalendar.cs
- ElementsClipboardData.cs
- FragmentQueryKB.cs
- DataGridBoolColumn.cs
- StdValidatorsAndConverters.cs
- DataBindingHandlerAttribute.cs
- RecipientInfo.cs
- PngBitmapDecoder.cs
- ComponentGlyph.cs
- ScopeElement.cs
- FixedSOMGroup.cs
- HeaderedContentControl.cs
- ImageMapEventArgs.cs
- QuaternionAnimationUsingKeyFrames.cs
- WebBrowserProgressChangedEventHandler.cs
- SizeIndependentAnimationStorage.cs
- ObjectSet.cs
- PrintPreviewDialog.cs
- HwndHostAutomationPeer.cs
- DmlSqlGenerator.cs
- ImageCodecInfo.cs
- TextFindEngine.cs
- EntityDesignerBuildProvider.cs
- InvalidWMPVersionException.cs
- ParserOptions.cs
- ObjectHandle.cs
- PolygonHotSpot.cs
- EntityContainerAssociationSetEnd.cs
- SimpleLine.cs
- Comparer.cs
- ScriptControl.cs
- DbSetClause.cs
- ComponentChangingEvent.cs
- ConfigUtil.cs
- util.cs
- OracleCommandBuilder.cs
- PtsContext.cs
- DrawingGroup.cs
- Calendar.cs
- LayoutManager.cs
- UserControlParser.cs
- controlskin.cs
- IdentityNotMappedException.cs
- RootBrowserWindowAutomationPeer.cs
- DeploymentSectionCache.cs
- UnauthorizedWebPart.cs
- CanonicalFormWriter.cs
- Literal.cs
- LoginName.cs
- HttpChannelHelper.cs
- TraceEventCache.cs
- Graph.cs
- Span.cs
- XmlDataProvider.cs
- _HelperAsyncResults.cs
- BamlLocalizationDictionary.cs
- ContainsSearchOperator.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- DiscoveryInnerClientAdhocCD1.cs
- ImmutableCollection.cs
- TransactionsSectionGroup.cs
- UserControl.cs
- PropertyMapper.cs
- SafeMILHandle.cs
- GAC.cs
- DocumentReferenceCollection.cs
- EventLogTraceListener.cs
- MDIClient.cs
- DataGridViewRowHeaderCell.cs
- GroupBoxRenderer.cs
- ProcessProtocolHandler.cs
- XmlSchemaComplexType.cs
- MenuCommandService.cs
- SharedHttpTransportManager.cs
- NativeMethods.cs
- Route.cs
- EdmComplexTypeAttribute.cs
- Geometry3D.cs
- IssuedTokenClientBehaviorsElement.cs
- NativeRecognizer.cs
- Label.cs
- EntityRecordInfo.cs
- SrgsRulesCollection.cs
- ApplicationTrust.cs
- ThemeInfoAttribute.cs
- Events.cs
- DataGridViewCheckBoxColumn.cs
- CodeLabeledStatement.cs