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
- ParserStreamGeometryContext.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- MouseGestureConverter.cs
- XamlRtfConverter.cs
- ConnectionPointGlyph.cs
- WebPartEventArgs.cs
- Attributes.cs
- CollectionTypeElement.cs
- LeafCellTreeNode.cs
- XmlSubtreeReader.cs
- ScriptBehaviorDescriptor.cs
- ThreadAbortException.cs
- ObjectStateEntryDbDataRecord.cs
- FixedPageStructure.cs
- MailWriter.cs
- LabelExpression.cs
- Main.cs
- FileSystemEventArgs.cs
- BinaryObjectInfo.cs
- Attribute.cs
- StateMachineWorkflowDesigner.cs
- Wizard.cs
- GZipDecoder.cs
- FilterQueryOptionExpression.cs
- indexingfiltermarshaler.cs
- NetworkInterface.cs
- EntityDataSourceWrapperCollection.cs
- ASCIIEncoding.cs
- CompiledWorkflowDefinitionContext.cs
- SQLSingle.cs
- TypeDelegator.cs
- EditorAttribute.cs
- AsyncOperation.cs
- XmlAttributeProperties.cs
- DataGridViewRow.cs
- mactripleDES.cs
- DataServiceHostWrapper.cs
- AddingNewEventArgs.cs
- AbsoluteQuery.cs
- TextSchema.cs
- WindowsTab.cs
- DrawingContextDrawingContextWalker.cs
- GraphicsPathIterator.cs
- BamlResourceContent.cs
- EncoderParameter.cs
- PersistChildrenAttribute.cs
- EventDriven.cs
- XamlFxTrace.cs
- WindowsGraphicsWrapper.cs
- TextEditorTables.cs
- AssemblyResourceLoader.cs
- TerminateSequence.cs
- BlurBitmapEffect.cs
- SelectManyQueryOperator.cs
- XPathQilFactory.cs
- _FtpControlStream.cs
- DocumentGridPage.cs
- DataGridItem.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SqlCrossApplyToCrossJoin.cs
- FloaterBaseParagraph.cs
- SignedXml.cs
- AddInIpcChannel.cs
- TriggerActionCollection.cs
- SelectionChangedEventArgs.cs
- HtmlTernaryTree.cs
- TextWriterEngine.cs
- FilterException.cs
- NativeMethodsCLR.cs
- HttpListenerRequestTraceRecord.cs
- EditorPart.cs
- CodeDOMUtility.cs
- TextCharacters.cs
- TdsRecordBufferSetter.cs
- ProjectionAnalyzer.cs
- AssemblyCache.cs
- ServerProtocol.cs
- BaseParaClient.cs
- FormViewInsertedEventArgs.cs
- XmlILConstructAnalyzer.cs
- Win32PrintDialog.cs
- ToolStripEditorManager.cs
- RewritingValidator.cs
- ClientType.cs
- ConnectionManagementElementCollection.cs
- HtmlInputButton.cs
- MultiSelectRootGridEntry.cs
- EntityViewContainer.cs
- CodeEntryPointMethod.cs
- SettingsAttributeDictionary.cs
- NetMsmqSecurityMode.cs
- securitymgrsite.cs
- ResourcePermissionBase.cs
- _TimerThread.cs
- ListViewInsertionMark.cs
- MonthCalendarDesigner.cs
- RectangleHotSpot.cs
- ErrorInfoXmlDocument.cs
- MimeWriter.cs
- ViewKeyConstraint.cs