Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Compilation / WebReferencesBuildProvider.cs / 1305376 / 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
- WebPartZoneCollection.cs
- SymbolUsageManager.cs
- FunctionParameter.cs
- TabletDeviceInfo.cs
- Panel.cs
- PropertyPathWorker.cs
- GridItemCollection.cs
- EventHandlersDesigner.cs
- SerializeAbsoluteContext.cs
- QilTargetType.cs
- FormClosingEvent.cs
- ApplicationContext.cs
- HttpRequestWrapper.cs
- ColorTranslator.cs
- CodeAttributeDeclarationCollection.cs
- NativeCompoundFileAPIs.cs
- SqlTypeSystemProvider.cs
- xamlnodes.cs
- ValidatorCompatibilityHelper.cs
- ZipIOCentralDirectoryBlock.cs
- RuleSettings.cs
- PageContent.cs
- MetadataItemCollectionFactory.cs
- AQNBuilder.cs
- SoapReflectionImporter.cs
- UidManager.cs
- SoapCommonClasses.cs
- XmlSchemaInferenceException.cs
- PersonalizationProvider.cs
- ToolStripTextBox.cs
- TransformerConfigurationWizardBase.cs
- TransformerConfigurationWizardBase.cs
- ImageCollectionCodeDomSerializer.cs
- TextRangeEdit.cs
- ValidationPropertyAttribute.cs
- XmlSerializationGeneratedCode.cs
- MailWriter.cs
- RequestCacheEntry.cs
- TagPrefixInfo.cs
- Accessible.cs
- OpenFileDialog.cs
- ResourceExpressionBuilder.cs
- DragDrop.cs
- SaveFileDialog.cs
- ConfigurationException.cs
- PerformanceCounterCategory.cs
- DataGridViewIntLinkedList.cs
- CodeIndexerExpression.cs
- StopStoryboard.cs
- StandardBindingCollectionElement.cs
- ImplicitInputBrush.cs
- TextEditor.cs
- XPathNode.cs
- BrowserInteropHelper.cs
- RemotingException.cs
- TagNameToTypeMapper.cs
- SimpleBitVector32.cs
- SqlExpressionNullability.cs
- EventProviderWriter.cs
- PointAnimationClockResource.cs
- DataGridViewTextBoxColumn.cs
- TagPrefixCollection.cs
- InfoCardArgumentException.cs
- MetadataCache.cs
- TextSimpleMarkerProperties.cs
- CategoryGridEntry.cs
- BooleanConverter.cs
- DataTableMapping.cs
- WhiteSpaceTrimStringConverter.cs
- GZipDecoder.cs
- TextRange.cs
- ToolboxComponentsCreatingEventArgs.cs
- MemoryFailPoint.cs
- CompositeCollectionView.cs
- PolyLineSegment.cs
- UriTemplateVariablePathSegment.cs
- _SslStream.cs
- ReaderOutput.cs
- MasterPageCodeDomTreeGenerator.cs
- RotateTransform.cs
- ThicknessAnimationUsingKeyFrames.cs
- SectionVisual.cs
- DataSourceComponent.cs
- ToolStripSplitStackLayout.cs
- IteratorDescriptor.cs
- HtmlInputSubmit.cs
- NTAccount.cs
- BulletedList.cs
- TemplateControlBuildProvider.cs
- BevelBitmapEffect.cs
- XmlUrlResolver.cs
- KnownTypesProvider.cs
- HttpDebugHandler.cs
- ProfileInfo.cs
- TemplateBaseAction.cs
- SqlRemoveConstantOrderBy.cs
- MetaModel.cs
- RegexCompilationInfo.cs
- ErrorTableItemStyle.cs
- HostingEnvironmentSection.cs