Code:
/ DotNET / DotNET / 8.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
- MemberAssignment.cs
- cache.cs
- messageonlyhwndwrapper.cs
- EventLogEntry.cs
- PageAsyncTask.cs
- ComponentSerializationService.cs
- StandardToolWindows.cs
- SqlXmlStorage.cs
- NotCondition.cs
- XmlNodeList.cs
- cookiecollection.cs
- EnvironmentPermission.cs
- HttpCacheParams.cs
- ElementNotAvailableException.cs
- TableChangeProcessor.cs
- _NetworkingPerfCounters.cs
- UIPropertyMetadata.cs
- TextParentUndoUnit.cs
- UInt64.cs
- RowTypePropertyElement.cs
- ProgressBar.cs
- MasterPageCodeDomTreeGenerator.cs
- TextServicesDisplayAttribute.cs
- CodeValidator.cs
- Mutex.cs
- XslUrlEditor.cs
- WebBrowserDocumentCompletedEventHandler.cs
- XmlAttributes.cs
- DBCSCodePageEncoding.cs
- PtsHost.cs
- Html32TextWriter.cs
- AuthenticatingEventArgs.cs
- IdentitySection.cs
- PostBackTrigger.cs
- DockAndAnchorLayout.cs
- DataObjectAttribute.cs
- InputProcessorProfilesLoader.cs
- safemediahandle.cs
- Canvas.cs
- Compiler.cs
- URLMembershipCondition.cs
- EntityDataSourceStatementEditorForm.cs
- BamlResourceContent.cs
- CalendarDesigner.cs
- Simplifier.cs
- Events.cs
- StreamWriter.cs
- SizeFConverter.cs
- ComponentEditorForm.cs
- TraceContextRecord.cs
- SizeLimitedCache.cs
- RuleElement.cs
- Variant.cs
- IDReferencePropertyAttribute.cs
- Root.cs
- ItemCheckEvent.cs
- DisplayNameAttribute.cs
- LockedBorderGlyph.cs
- MouseCaptureWithinProperty.cs
- OptimalTextSource.cs
- Label.cs
- ExpressionVisitor.cs
- EntityDataSourceDataSelectionPanel.cs
- RectangleF.cs
- ModulesEntry.cs
- EventHandlersStore.cs
- DataBindingCollection.cs
- BrushMappingModeValidation.cs
- TdsParserSafeHandles.cs
- TableItemStyle.cs
- DataShape.cs
- ToolStripRenderEventArgs.cs
- QueryPageSettingsEventArgs.cs
- DiscoveryReference.cs
- ADMembershipUser.cs
- PropertyCollection.cs
- PointLight.cs
- SQLMoney.cs
- TypeExtensionConverter.cs
- ScrollProviderWrapper.cs
- Binding.cs
- TemplateKey.cs
- RegexReplacement.cs
- HealthMonitoringSection.cs
- _ListenerResponseStream.cs
- ValueType.cs
- ToolboxItemAttribute.cs
- DetailsViewPagerRow.cs
- SqlDataSourceConnectionPanel.cs
- RayHitTestParameters.cs
- DataGrid.cs
- Calendar.cs
- Brush.cs
- NullExtension.cs
- XPathCompileException.cs
- SystemColors.cs
- GPStream.cs
- HostingEnvironmentException.cs
- WinEventHandler.cs
- SqlDataSourceCommandEventArgs.cs