Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Shared / MS / Internal / ResourceIDHelper.cs / 1 / ResourceIDHelper.cs
using System; using System.Text; using System.Globalization; namespace MS.Internal { internal static class ResourceIDHelper { // // Convert relative path to the right format which is used // as ResourceID. // MarkupCompiler, ResXGen, Loader will call this method internally. // static internal string GetResourceIDFromRelativePath(string relPath) { // It is important that relPath not contain a fragment or query at this point // // Currently this will always be true because // 1) The resources listed in the .proj file are tested against the filesystem // to see if they exist. If a query or fragment was present this test would fail. // 2) In the new loader the container apis make sure that the fragment and query are // stripped from the Uri to form the part name which is used to load the resource Uri baseUri = new Uri("http://foo/"); Uri srcUri = new Uri(baseUri, relPath.Replace("#", "%23")); return GetResourceIDFromUri(baseUri, srcUri); } // // This is the central place that returns right ResourceID for // the passed SourceUri. // static private string GetResourceIDFromUri(Uri baseUri, Uri sourceUri) { string resourceID = String.Empty; // // Extracts and returns the resource ID from a URI. // If the source URI is under the baseUri, the resource ID is the URI // after the baseUri and any fragment or query has been removed. // The resource ID is always converted to lower case. // // If the sourceUri is not relative to baseUri, Emtpy string is returned // as resource id. // if (baseUri.IsAbsoluteUri == false || sourceUri.IsAbsoluteUri == false) { // // if any passed Uri is not absolute uri, return empty string here. // return resourceID; } if (baseUri.Scheme == sourceUri.Scheme && baseUri.Host == sourceUri.Host) { // // Get the escaped Path part, Path doesn't include Query and Fragment. // string basePath = baseUri.GetComponents(UriComponents.Path, UriFormat.UriEscaped); string sourcePath = sourceUri.GetComponents(UriComponents.Path, UriFormat.UriEscaped); // // Always lower case the Path string. // basePath = basePath.ToLower(CultureInfo.InvariantCulture); sourcePath = sourcePath.ToLower(CultureInfo.InvariantCulture); if (sourcePath.StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) { resourceID = sourcePath.Substring(basePath.Length); } } return resourceID; } } } // 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
- AssemblyBuilderData.cs
- Deflater.cs
- EFColumnProvider.cs
- CompilerCollection.cs
- Deflater.cs
- InputLanguageSource.cs
- DictionaryEditChange.cs
- SatelliteContractVersionAttribute.cs
- SharedMemory.cs
- EmptyEnumerator.cs
- QilTargetType.cs
- UICuesEvent.cs
- XmlSchemaNotation.cs
- FormsAuthenticationUser.cs
- MulticastOption.cs
- Shape.cs
- XmlWriterSettings.cs
- GatewayIPAddressInformationCollection.cs
- MaskedTextProvider.cs
- SystemException.cs
- AuthenticationService.cs
- TemplateInstanceAttribute.cs
- DataListItemEventArgs.cs
- MethodToken.cs
- DbModificationCommandTree.cs
- UseLicense.cs
- DbConnectionHelper.cs
- ResourceIDHelper.cs
- AuthenticateEventArgs.cs
- ValueHandle.cs
- CodeCatchClause.cs
- SchemaElementDecl.cs
- GroupItem.cs
- Int32EqualityComparer.cs
- BuildTopDownAttribute.cs
- CachedFontFace.cs
- ProgressBarHighlightConverter.cs
- LayoutManager.cs
- TextWriter.cs
- CompModSwitches.cs
- ActiveXHost.cs
- WebExceptionStatus.cs
- ExtendedProtectionPolicyTypeConverter.cs
- ExecutionContext.cs
- ComponentDispatcher.cs
- AspNetHostingPermission.cs
- WebPartConnectionsCancelEventArgs.cs
- GeometryGroup.cs
- ScriptingWebServicesSectionGroup.cs
- CodeDomSerializerBase.cs
- SectionXmlInfo.cs
- EditorZone.cs
- Stacktrace.cs
- BitmapMetadataEnumerator.cs
- SqlDependencyListener.cs
- SoapWriter.cs
- SafeFindHandle.cs
- PhysicalAddress.cs
- ClientRuntimeConfig.cs
- RegexCaptureCollection.cs
- SafeEventHandle.cs
- FormView.cs
- GridViewDeleteEventArgs.cs
- TypeDescriptorContext.cs
- RewritingProcessor.cs
- ProgressBar.cs
- MaterialGroup.cs
- EditorZone.cs
- DebuggerAttributes.cs
- StreamInfo.cs
- DataGridViewHeaderCell.cs
- SimpleFieldTemplateUserControl.cs
- SelectionProcessor.cs
- RowCache.cs
- ApplicationDirectoryMembershipCondition.cs
- SocketPermission.cs
- KeyValueSerializer.cs
- SizeAnimationClockResource.cs
- Shape.cs
- MouseEventArgs.cs
- UidManager.cs
- GridViewRow.cs
- HttpCacheVaryByContentEncodings.cs
- DeclarativeCatalogPart.cs
- Literal.cs
- PersonalizationStateInfo.cs
- Binding.cs
- TypedTableBaseExtensions.cs
- TemplatePartAttribute.cs
- OfTypeExpression.cs
- BitmapEffectInput.cs
- QueryTask.cs
- LineMetrics.cs
- _SslState.cs
- OneWayChannelFactory.cs
- PageEventArgs.cs
- ToolStripRenderer.cs
- Vars.cs
- XmlProcessingInstruction.cs
- GroupDescription.cs