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
- DataPagerFieldCommandEventArgs.cs
- FragmentNavigationEventArgs.cs
- DetailsViewUpdateEventArgs.cs
- ProxyFragment.cs
- TimeoutException.cs
- CollectionType.cs
- ListInitExpression.cs
- Schema.cs
- NetworkAddressChange.cs
- PointF.cs
- ContextStaticAttribute.cs
- CodeAttributeDeclarationCollection.cs
- ReadWriteSpinLock.cs
- BuilderInfo.cs
- TrustLevel.cs
- ConfigurationValues.cs
- XPathNavigatorReader.cs
- CodeDirectiveCollection.cs
- TextTreePropertyUndoUnit.cs
- HttpCachePolicy.cs
- RawMouseInputReport.cs
- WinEventWrap.cs
- FilterQueryOptionExpression.cs
- ProcessModuleDesigner.cs
- OutputCacheSettingsSection.cs
- EnlistmentState.cs
- ObfuscationAttribute.cs
- XamlSerializerUtil.cs
- _AcceptOverlappedAsyncResult.cs
- MetafileHeaderEmf.cs
- RootBuilder.cs
- ObjectSet.cs
- FontFamilyValueSerializer.cs
- CurrentChangedEventManager.cs
- GridViewCellAutomationPeer.cs
- EventPropertyMap.cs
- BufferAllocator.cs
- HttpCookiesSection.cs
- AsyncOperation.cs
- GorillaCodec.cs
- SourceChangedEventArgs.cs
- ErrorEventArgs.cs
- GridViewColumnHeader.cs
- nulltextcontainer.cs
- TrackingProfile.cs
- TabletDevice.cs
- ToolStripSplitButton.cs
- StaticTextPointer.cs
- ValidationResult.cs
- IteratorFilter.cs
- OdbcConnectionHandle.cs
- IPipelineRuntime.cs
- Selection.cs
- StringConcat.cs
- WebPartTransformerCollection.cs
- HttpCachePolicyElement.cs
- RegistryPermission.cs
- TextEditorMouse.cs
- RootContext.cs
- ModelPerspective.cs
- SqlTransaction.cs
- XslCompiledTransform.cs
- SupportingTokenChannel.cs
- XmlFormatWriterGenerator.cs
- RelationshipEnd.cs
- CodeNamespaceImportCollection.cs
- X509Certificate2.cs
- RootCodeDomSerializer.cs
- Metafile.cs
- Stacktrace.cs
- Command.cs
- CodeValidator.cs
- UnitySerializationHolder.cs
- CharacterHit.cs
- InputGestureCollection.cs
- RequestQueryProcessor.cs
- ArgIterator.cs
- FixedPosition.cs
- TextLineBreak.cs
- DataSourceControl.cs
- HtmlTableRow.cs
- CustomPopupPlacement.cs
- InputScopeAttribute.cs
- remotingproxy.cs
- BitmapCodecInfoInternal.cs
- XmlHelper.cs
- Queue.cs
- TextServicesProperty.cs
- GetImportFileNameRequest.cs
- TextRangeProviderWrapper.cs
- RecognizedWordUnit.cs
- OutputCacheSettingsSection.cs
- FullTrustAssembly.cs
- XmlValidatingReader.cs
- Application.cs
- WebZone.cs
- Formatter.cs
- BrowserDefinition.cs
- ServiceBuildProvider.cs
- Item.cs