Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Compilation / WebReferencesBuildProvider.cs / 2 / WebReferencesBuildProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.Globalization; using System.CodeDom; using System.CodeDom.Compiler; using System.Collections.Specialized; using System.Net; using System.Xml.Serialization; #if !FEATURE_PAL using System.Web.Services.Description; using System.Web.Services.Discovery; #endif // !FEATURE_PAL using System.Web.Hosting; using System.Web.UI; using System.Web.Util; using Util=System.Web.UI.Util; internal class WebReferencesBuildProvider: BuildProvider { private VirtualDirectory _vdir; private const string IndigoWebRefProviderTypeName = "System.Web.Compilation.WCFBuildProvider"; private static Type s_indigoWebRefProviderType; private static bool s_triedToGetWebRefType; internal WebReferencesBuildProvider(VirtualDirectory vdir) { _vdir = vdir; } public override void GenerateCode(AssemblyBuilder assemblyBuilder) { // Only attempt to get the Indigo provider once if (!s_triedToGetWebRefType) { s_indigoWebRefProviderType = BuildManager.GetType(IndigoWebRefProviderTypeName, false /*throwOnError*/); s_triedToGetWebRefType = true; } // If we have an Indigo provider, instantiate it and forward the GenerateCode call to it if (s_indigoWebRefProviderType != null) { BuildProvider buildProvider = (BuildProvider)HttpRuntime.CreateNonPublicInstance(s_indigoWebRefProviderType); buildProvider.SetVirtualPath(VirtualPathObject); buildProvider.GenerateCode(assemblyBuilder); } // e.g "/MyApp/Application_WebReferences" VirtualPath rootWebRefDirVirtualPath = HttpRuntime.WebRefDirectoryVirtualPath; // e.g "/MyApp/Application_WebReferences/Foo/Bar" string currentWebRefDirVirtualPath = _vdir.VirtualPath; Debug.Assert(StringUtil.StringStartsWithIgnoreCase( currentWebRefDirVirtualPath, rootWebRefDirVirtualPath.VirtualPathString)); string ns; if (rootWebRefDirVirtualPath.VirtualPathString.Length == currentWebRefDirVirtualPath.Length) { // If it's the root WebReferences dir, use the empty namespace ns = String.Empty; } else { // e.g. "Foo/Bar" Debug.Assert(rootWebRefDirVirtualPath.HasTrailingSlash); currentWebRefDirVirtualPath = UrlPath.RemoveSlashFromPathIfNeeded(currentWebRefDirVirtualPath); currentWebRefDirVirtualPath = currentWebRefDirVirtualPath.Substring( rootWebRefDirVirtualPath.VirtualPathString.Length); // Split it into chunks separated by '/' string[] chunks = currentWebRefDirVirtualPath.Split('/'); // Turn all the relevant chunks into valid namespace chunks for (int i=0; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntitySetBase.cs
- SystemNetHelpers.cs
- Size3DValueSerializer.cs
- HtmlAnchor.cs
- CrossContextChannel.cs
- BaseTemplateParser.cs
- RadioButtonRenderer.cs
- DataControlImageButton.cs
- UpdateCommandGenerator.cs
- TextBox.cs
- PagesSection.cs
- DataBoundControlAdapter.cs
- NativeMethods.cs
- AssociationSet.cs
- ErrorTableItemStyle.cs
- PathSegment.cs
- XmlExceptionHelper.cs
- Reference.cs
- HttpBrowserCapabilitiesBase.cs
- DefaultPropertyAttribute.cs
- ByteViewer.cs
- GenericRootAutomationPeer.cs
- TransactionFormatter.cs
- PaperSource.cs
- DynamicFilter.cs
- ExpressionHelper.cs
- ImageSourceConverter.cs
- TriggerAction.cs
- TouchDevice.cs
- TemplateControl.cs
- BufferedReadStream.cs
- _DomainName.cs
- ObservableDictionary.cs
- ToolStripHighContrastRenderer.cs
- AttachedPropertyDescriptor.cs
- ScrollBar.cs
- NullReferenceException.cs
- AsymmetricAlgorithm.cs
- GeometryDrawing.cs
- DependencyPropertyHelper.cs
- PrivilegedConfigurationManager.cs
- HitTestParameters.cs
- BinaryObjectReader.cs
- RepeatButtonAutomationPeer.cs
- UInt16.cs
- OverrideMode.cs
- ServerType.cs
- XhtmlBasicControlAdapter.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- Enumerable.cs
- MessageQueueConverter.cs
- Timer.cs
- ConfigXmlWhitespace.cs
- Boolean.cs
- BStrWrapper.cs
- SqlDataSourceCommandEventArgs.cs
- ConversionContext.cs
- EventMemberCodeDomSerializer.cs
- StrongNameIdentityPermission.cs
- HandlerBase.cs
- AdornerLayer.cs
- CrossAppDomainChannel.cs
- MultiPropertyDescriptorGridEntry.cs
- TextBoxBaseDesigner.cs
- DataErrorValidationRule.cs
- ContextProperty.cs
- Dump.cs
- GatewayDefinition.cs
- KeysConverter.cs
- Semaphore.cs
- AbstractSvcMapFileLoader.cs
- MaskInputRejectedEventArgs.cs
- ExpandedProjectionNode.cs
- XsdDuration.cs
- TextSelectionProcessor.cs
- Activator.cs
- AuthenticateEventArgs.cs
- PtsCache.cs
- DefinitionBase.cs
- UnsafeNativeMethods.cs
- ThreadSafeMessageFilterTable.cs
- DataGridClipboardHelper.cs
- BufferedWebEventProvider.cs
- BoolExpr.cs
- HostExecutionContextManager.cs
- ObjectHandle.cs
- SocketAddress.cs
- PathGradientBrush.cs
- BatchStream.cs
- WindowsFont.cs
- PackageRelationship.cs
- TheQuery.cs
- ListCollectionView.cs
- SiteMapNodeCollection.cs
- AuthenticationService.cs
- DataTablePropertyDescriptor.cs
- ImmComposition.cs
- FunctionOverloadResolver.cs
- HashAlgorithm.cs
- ZipFileInfoCollection.cs