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
- XmlEnumAttribute.cs
- TypeConstant.cs
- RouteUrlExpressionBuilder.cs
- ConfigurationProperty.cs
- XPathMultyIterator.cs
- DeviceContext.cs
- TextElementEditingBehaviorAttribute.cs
- LoginName.cs
- AdornerLayer.cs
- ScriptResourceAttribute.cs
- RetrieveVirtualItemEventArgs.cs
- CapacityStreamGeometryContext.cs
- SpeakInfo.cs
- CustomSignedXml.cs
- DbInsertCommandTree.cs
- FormsAuthenticationModule.cs
- ListItemConverter.cs
- XPathScanner.cs
- Parallel.cs
- TypeAccessException.cs
- OdbcDataAdapter.cs
- latinshape.cs
- Brush.cs
- FixUp.cs
- Encoding.cs
- ToolStripItemCollection.cs
- DataRowComparer.cs
- XmlIncludeAttribute.cs
- IdentifierService.cs
- XmlSignificantWhitespace.cs
- CollectionViewGroupInternal.cs
- SetterTriggerConditionValueConverter.cs
- HttpStaticObjectsCollectionWrapper.cs
- SortQuery.cs
- SHA256CryptoServiceProvider.cs
- XmlSchemaDocumentation.cs
- XPathExpr.cs
- DesignerActionPropertyItem.cs
- UnknownWrapper.cs
- HMACMD5.cs
- Control.cs
- RadialGradientBrush.cs
- EdmFunction.cs
- ContextBase.cs
- PerfService.cs
- InternalConfigEventArgs.cs
- ComponentResourceKeyConverter.cs
- References.cs
- ConfigurationLoaderException.cs
- HttpFileCollectionWrapper.cs
- TypedLocationWrapper.cs
- MulticastDelegate.cs
- XmlAnyElementAttribute.cs
- EntityDataSourceDataSelection.cs
- ServiceModelStringsVersion1.cs
- KeyValuePair.cs
- ObjectConverter.cs
- RoleManagerEventArgs.cs
- Win32.cs
- VideoDrawing.cs
- LayoutEvent.cs
- SerializationAttributes.cs
- DesignerActionListCollection.cs
- ImageConverter.cs
- DataObjectPastingEventArgs.cs
- WindowsComboBox.cs
- DateTimeParse.cs
- ObservableCollection.cs
- DataRecordInfo.cs
- TokenBasedSetEnumerator.cs
- ContentDisposition.cs
- SizeF.cs
- ApplicationContext.cs
- ValidationRule.cs
- WindowShowOrOpenTracker.cs
- XomlCompilerParameters.cs
- NetMsmqBindingElement.cs
- FileChangesMonitor.cs
- NullableDoubleMinMaxAggregationOperator.cs
- CustomError.cs
- SqlProvider.cs
- NativeMethods.cs
- OleDbMetaDataFactory.cs
- CodeCommentStatement.cs
- GACIdentityPermission.cs
- InputLanguageCollection.cs
- DependencyPropertyKind.cs
- ConfigurationValidatorAttribute.cs
- ListBindableAttribute.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- WindowsRegion.cs
- DataList.cs
- PersonalizationDictionary.cs
- DataErrorValidationRule.cs
- VariableBinder.cs
- WebReference.cs
- StatusStrip.cs
- Double.cs
- FindCriteria.cs
- DbConnectionPoolIdentity.cs