Code:
/ FX-1434 / FX-1434 / 1.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
- SoapAttributeAttribute.cs
- DecoderReplacementFallback.cs
- DataPagerCommandEventArgs.cs
- UIPropertyMetadata.cs
- DataSetViewSchema.cs
- DetailsViewPageEventArgs.cs
- SystemParameters.cs
- StorageConditionPropertyMapping.cs
- FontFamily.cs
- VisualState.cs
- DBCommand.cs
- DependencyObjectProvider.cs
- TreeView.cs
- ReaderWriterLockWrapper.cs
- ByteKeyFrameCollection.cs
- Viewport2DVisual3D.cs
- LayoutUtils.cs
- RadioButtonList.cs
- MulticastOption.cs
- Fonts.cs
- Track.cs
- PermissionSetEnumerator.cs
- WizardStepBase.cs
- ToolStripOverflowButton.cs
- ClientSettingsStore.cs
- ServiceOperationWrapper.cs
- CharacterMetrics.cs
- ResourceReferenceExpression.cs
- StringFreezingAttribute.cs
- CodeCastExpression.cs
- CaseCqlBlock.cs
- BitmapCodecInfoInternal.cs
- NativeMethodsOther.cs
- FamilyTypeface.cs
- FormatException.cs
- TreeNodeMouseHoverEvent.cs
- BindingContext.cs
- DataServiceHostFactory.cs
- CommonObjectSecurity.cs
- QueryOutputWriterV1.cs
- HttpException.cs
- AnnotationHighlightLayer.cs
- UserControlFileEditor.cs
- ScriptReference.cs
- CompilationRelaxations.cs
- IListConverters.cs
- DesignTimeParseData.cs
- TraceProvider.cs
- CommonGetThemePartSize.cs
- HelloMessageCD1.cs
- LicenseException.cs
- EntityKey.cs
- CacheAxisQuery.cs
- PerfCounterSection.cs
- BinaryNode.cs
- ManagedFilter.cs
- SymbolMethod.cs
- DataGridViewHitTestInfo.cs
- ZipIOFileItemStream.cs
- Journal.cs
- _ConnectOverlappedAsyncResult.cs
- MimeFormImporter.cs
- InlinedAggregationOperatorEnumerator.cs
- PersonalizationStateInfoCollection.cs
- BinaryParser.cs
- Pen.cs
- DetailsViewUpdatedEventArgs.cs
- DropDownButton.cs
- QuadraticBezierSegment.cs
- SqlVersion.cs
- WSDualHttpBinding.cs
- ExpandCollapsePattern.cs
- WebBrowserUriTypeConverter.cs
- WindowsFormsHelpers.cs
- httpserverutility.cs
- GenerateScriptTypeAttribute.cs
- SymbolUsageManager.cs
- SkipStoryboardToFill.cs
- UnsafeNativeMethods.cs
- TextTreeUndoUnit.cs
- SqlFileStream.cs
- dbenumerator.cs
- ReadOnlyHierarchicalDataSource.cs
- ListenerConnectionModeReader.cs
- SqlDataSourceCommandEventArgs.cs
- ServicesExceptionNotHandledEventArgs.cs
- FileLogRecord.cs
- SoapIgnoreAttribute.cs
- CompositeScriptReference.cs
- DrawingContextWalker.cs
- DataListItemCollection.cs
- PersistenceMetadataNamespace.cs
- CreationContext.cs
- HttpTransportManager.cs
- FormattedTextSymbols.cs
- LogicalExpr.cs
- AsyncResult.cs
- SqlDataSourceQueryEditorForm.cs
- ObjectConverter.cs
- WSDualHttpSecurity.cs