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
- PropertyInformation.cs
- SrgsGrammar.cs
- VarRefManager.cs
- CheckBoxList.cs
- ObjectNotFoundException.cs
- DecoderFallback.cs
- webeventbuffer.cs
- EncodingNLS.cs
- EdmComplexTypeAttribute.cs
- Bezier.cs
- SerializableTypeCodeDomSerializer.cs
- SqlCaseSimplifier.cs
- AlternateView.cs
- DynamicDataRoute.cs
- PackageDigitalSignatureManager.cs
- XmlMtomReader.cs
- ProxyWebPartConnectionCollection.cs
- NativeMethodsCLR.cs
- TextDecoration.cs
- PassportPrincipal.cs
- OperationCanceledException.cs
- RectangleGeometry.cs
- CapabilitiesUse.cs
- DataSourceConverter.cs
- sqlser.cs
- Wizard.cs
- WebPartDesigner.cs
- DataServiceResponse.cs
- TextTreeFixupNode.cs
- Decoder.cs
- ObservableDictionary.cs
- UntypedNullExpression.cs
- TCPClient.cs
- TextAnchor.cs
- LinkUtilities.cs
- FloaterBaseParagraph.cs
- TimeoutException.cs
- ValueOfAction.cs
- OSFeature.cs
- UserControl.cs
- Rule.cs
- FixedBufferAttribute.cs
- CompensatableSequenceActivity.cs
- HashCodeCombiner.cs
- GridViewDeletedEventArgs.cs
- TypedElement.cs
- ContractsBCL.cs
- LoginUtil.cs
- NotifyInputEventArgs.cs
- XmlElementCollection.cs
- HashCryptoHandle.cs
- ConnectionInterfaceCollection.cs
- WhitespaceRuleLookup.cs
- DataServiceConfiguration.cs
- NumericUpDownAcceleration.cs
- MethodMessage.cs
- ThicknessAnimation.cs
- DrawTreeNodeEventArgs.cs
- ProfilePropertySettings.cs
- MethodBuilder.cs
- ConfigurationStrings.cs
- DynamicRendererThreadManager.cs
- DoubleUtil.cs
- SafeFileMapViewHandle.cs
- BuildProvider.cs
- ExpressionHelper.cs
- HtmlLink.cs
- QueryPageSettingsEventArgs.cs
- TextTreeTextNode.cs
- CheckBoxField.cs
- CompositeTypefaceMetrics.cs
- MsmqReceiveHelper.cs
- ExcCanonicalXml.cs
- DataGridView.cs
- MessagePropertyFilter.cs
- FileAuthorizationModule.cs
- SystemColorTracker.cs
- HandlerMappingMemo.cs
- BulletedList.cs
- CultureInfoConverter.cs
- CodeCatchClauseCollection.cs
- DoubleAverageAggregationOperator.cs
- ZipIOLocalFileDataDescriptor.cs
- IgnoreFileBuildProvider.cs
- DropShadowEffect.cs
- ManagedFilter.cs
- ProtectedProviderSettings.cs
- StylusLogic.cs
- SHA256Managed.cs
- AlgoModule.cs
- DataSourceControlBuilder.cs
- ProfessionalColorTable.cs
- CqlParser.cs
- PaintValueEventArgs.cs
- VariableElement.cs
- documentation.cs
- ReadContentAsBinaryHelper.cs
- AccessKeyManager.cs
- ReplyChannel.cs
- TextSchema.cs