Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / System.ServiceModel.Activation / System / ServiceModel / Activation / ServiceRoute.cs / 1305376 / ServiceRoute.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System; using System.Globalization; using System.Web.Routing; public class ServiceRoute : Route { internal const string LeftCurlyBracket = "{"; internal const string RightCurlyBracket = "}"; internal const string UnmatchedPathSegment = "{*pathInfo}"; internal const char PathSeperator = '/'; public ServiceRoute(string routePrefix, ServiceHostFactoryBase serviceHostFactory, Type serviceType) : base(CheckAndCreateRouteString(routePrefix), new ServiceRouteHandler(routePrefix, serviceHostFactory, serviceType)) { if (TD.AspNetRouteIsEnabled()) { TD.AspNetRoute(routePrefix, serviceType.AssemblyQualifiedName, serviceHostFactory.GetType().AssemblyQualifiedName); } } static string CheckAndCreateRouteString(string routePrefix) { // aspnet routing integration is supported only under aspnet compat mode ServiceHostingEnvironment.EnsureInitialized(); if (!ServiceHostingEnvironment.AspNetCompatibilityEnabled) { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.Hosting_RouteServiceRequiresCompatibilityMode)); } // we support emptystring as routeprfix as aspnet allows it if (routePrefix == null) { throw FxTrace.Exception.ArgumentNull("routePrefix"); } else if (routePrefix.Contains(LeftCurlyBracket) || routePrefix.Contains(RightCurlyBracket)) { throw FxTrace.Exception.Argument("routePrefix", SR.Hosting_CurlyBracketFoundInRoutePrefix("{", "}")); } if(routePrefix.EndsWith(PathSeperator.ToString(), StringComparison.CurrentCultureIgnoreCase) || routePrefix.Equals(String.Empty, StringComparison.CurrentCultureIgnoreCase)) { routePrefix = string.Format(CultureInfo.CurrentCulture, "{0}{1}", routePrefix, UnmatchedPathSegment); } else { routePrefix = string.Format(CultureInfo.CurrentCulture, "{0}/{1}", routePrefix, UnmatchedPathSegment); } return routePrefix; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextElementCollectionHelper.cs
- TextEmbeddedObject.cs
- Nodes.cs
- assertwrapper.cs
- HttpListenerException.cs
- CoTaskMemHandle.cs
- MbpInfo.cs
- TrackingMemoryStreamFactory.cs
- PublishLicense.cs
- _ContextAwareResult.cs
- TabControlEvent.cs
- FilteredSchemaElementLookUpTable.cs
- OleDbException.cs
- WebControlParameterProxy.cs
- RegionData.cs
- OracleRowUpdatingEventArgs.cs
- ElementHostAutomationPeer.cs
- Style.cs
- ToolCreatedEventArgs.cs
- SerializationEventsCache.cs
- EntityViewGenerationAttribute.cs
- SemaphoreFullException.cs
- LocalizabilityAttribute.cs
- SafeBuffer.cs
- TraceUtility.cs
- PointCollection.cs
- ResXResourceWriter.cs
- SqlClientWrapperSmiStreamChars.cs
- UnknownWrapper.cs
- BitConverter.cs
- DataGridViewBand.cs
- DependencyObject.cs
- GeometryValueSerializer.cs
- ControlBindingsCollection.cs
- ApplicationSettingsBase.cs
- HttpHandlerAction.cs
- ObjectViewQueryResultData.cs
- DriveInfo.cs
- PageHandlerFactory.cs
- WizardPanelChangingEventArgs.cs
- objectresult_tresulttype.cs
- ObjectDataSourceStatusEventArgs.cs
- ActivityCodeGenerator.cs
- _TransmitFileOverlappedAsyncResult.cs
- TreeNodeBindingCollection.cs
- VersionedStreamOwner.cs
- PermissionSetEnumerator.cs
- DynamicMetaObjectBinder.cs
- RegisteredScript.cs
- OwnerDrawPropertyBag.cs
- PeerTransportListenAddressValidator.cs
- Transform.cs
- MenuAdapter.cs
- BatchStream.cs
- FlowLayoutPanel.cs
- MouseWheelEventArgs.cs
- Win32Exception.cs
- SQLDouble.cs
- Rect3DConverter.cs
- BackStopAuthenticationModule.cs
- EpmCustomContentSerializer.cs
- PenThreadWorker.cs
- ISSmlParser.cs
- CachingHintValidation.cs
- LookupBindingPropertiesAttribute.cs
- DebugInfoGenerator.cs
- FixedPageAutomationPeer.cs
- XhtmlBasicTextBoxAdapter.cs
- ValidationErrorEventArgs.cs
- _IPv4Address.cs
- DeleteIndexBinder.cs
- SqlInfoMessageEvent.cs
- InfoCardSymmetricCrypto.cs
- IntegrationExceptionEventArgs.cs
- ErrorEventArgs.cs
- ServiceInfo.cs
- UserControlAutomationPeer.cs
- MaterialGroup.cs
- WebPartManagerDesigner.cs
- SourceElementsCollection.cs
- HttpRequestWrapper.cs
- XmlWriterDelegator.cs
- DllNotFoundException.cs
- ServicePointManager.cs
- ReceiveDesigner.xaml.cs
- Task.cs
- RoutingExtensionElement.cs
- DeliveryRequirementsAttribute.cs
- PageBuildProvider.cs
- CancellationTokenRegistration.cs
- BuildProvider.cs
- OptimalBreakSession.cs
- DrawToolTipEventArgs.cs
- PrintPreviewGraphics.cs
- UriTemplateTableMatchCandidate.cs
- ConnectionsZone.cs
- Transaction.cs
- TransactionsSectionGroup.cs
- _LoggingObject.cs
- CommandConverter.cs