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
- ImageList.cs
- WebPartsPersonalization.cs
- AspProxy.cs
- WindowsAuthenticationModule.cs
- ConnectionManagementElementCollection.cs
- SortDescription.cs
- DataSetUtil.cs
- FloaterBaseParaClient.cs
- TextEditorCopyPaste.cs
- SplitterCancelEvent.cs
- ComboBoxHelper.cs
- UnionExpr.cs
- FrameworkReadOnlyPropertyMetadata.cs
- PageTheme.cs
- Tile.cs
- HttpMethodConstraint.cs
- SerTrace.cs
- RegisteredDisposeScript.cs
- StorageEntitySetMapping.cs
- DataGridViewCellPaintingEventArgs.cs
- InternalResources.cs
- WorkflowItemsPresenter.cs
- ToolStripOverflow.cs
- EntityCommandCompilationException.cs
- EditorAttribute.cs
- ServiceProviders.cs
- DatatypeImplementation.cs
- GradientBrush.cs
- ListViewInsertionMark.cs
- MessageOperationFormatter.cs
- ResourceExpressionBuilder.cs
- SocketAddress.cs
- QueryOperationResponseOfT.cs
- HttpCacheVaryByContentEncodings.cs
- WebEvents.cs
- NetCodeGroup.cs
- BitArray.cs
- ActivitySurrogateSelector.cs
- UIElementPropertyUndoUnit.cs
- XPathException.cs
- WebPartDisplayModeCancelEventArgs.cs
- ContentControl.cs
- HttpModulesSection.cs
- ProvidePropertyAttribute.cs
- CheckBoxList.cs
- PageCache.cs
- AttachedPropertyMethodSelector.cs
- TcpConnectionPoolSettings.cs
- StrokeNode.cs
- TextBoxAutoCompleteSourceConverter.cs
- Dictionary.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- BinaryObjectReader.cs
- TriggerBase.cs
- LayoutTableCell.cs
- CFGGrammar.cs
- XslTransform.cs
- ComponentEvent.cs
- FigureHelper.cs
- SelectingProviderEventArgs.cs
- WindowsTab.cs
- ServiceOperationParameter.cs
- SoapFormatter.cs
- FontStretches.cs
- RemoteWebConfigurationHost.cs
- GenericEnumerator.cs
- CounterSample.cs
- PointCollection.cs
- ExtenderControl.cs
- StylusPointPropertyInfoDefaults.cs
- LinkClickEvent.cs
- Select.cs
- ListView.cs
- tooltip.cs
- CachedPathData.cs
- LinkArea.cs
- Helpers.cs
- CharacterString.cs
- PenThread.cs
- DefaultValueTypeConverter.cs
- DataGridColumnHeaderCollection.cs
- _CacheStreams.cs
- TableDetailsRow.cs
- DataStreamFromComStream.cs
- FlowLayoutPanelDesigner.cs
- IndentedWriter.cs
- ScriptReference.cs
- SchemaImporterExtensionsSection.cs
- ButtonFieldBase.cs
- Utils.cs
- ClosableStream.cs
- ThrowHelper.cs
- UiaCoreApi.cs
- FrameworkContentElement.cs
- DoubleConverter.cs
- IOException.cs
- SocketInformation.cs
- DeploymentSectionCache.cs
- AxHost.cs
- FontUnitConverter.cs