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
- OracleParameterCollection.cs
- FormsAuthenticationConfiguration.cs
- AvTraceDetails.cs
- OutputWindow.cs
- SingleObjectCollection.cs
- XmlSerializerVersionAttribute.cs
- EncoderBestFitFallback.cs
- ListViewCancelEventArgs.cs
- Trigger.cs
- TypeUsage.cs
- HMACMD5.cs
- TextChangedEventArgs.cs
- FunctionMappingTranslator.cs
- EntityConnection.cs
- ResourceContainer.cs
- ApplicationSecurityInfo.cs
- SqlRowUpdatingEvent.cs
- brushes.cs
- AsyncCodeActivity.cs
- CustomGrammar.cs
- DataGridTableCollection.cs
- SubordinateTransaction.cs
- Contracts.cs
- XmlCharType.cs
- TaskFileService.cs
- LinqDataSourceDeleteEventArgs.cs
- ValueUtilsSmi.cs
- ItemsChangedEventArgs.cs
- ProviderCommandInfoUtils.cs
- ComponentResourceManager.cs
- OutputCacheSection.cs
- ImpersonationContext.cs
- ISAPIWorkerRequest.cs
- SecurityTokenRequirement.cs
- ConsoleKeyInfo.cs
- OdbcEnvironment.cs
- ModifierKeysConverter.cs
- DesignerVerbCollection.cs
- LassoHelper.cs
- WindowsToolbarItemAsMenuItem.cs
- ConfigurationManagerInternal.cs
- ListBoxItemWrapperAutomationPeer.cs
- ToolBar.cs
- SignedInfo.cs
- MemberBinding.cs
- TitleStyle.cs
- TimeSpan.cs
- NumericUpDownAcceleration.cs
- BindingContext.cs
- DataContractSerializerSection.cs
- Exceptions.cs
- DataGridItemEventArgs.cs
- DeadCharTextComposition.cs
- BasePattern.cs
- Package.cs
- ColorConverter.cs
- RegexGroupCollection.cs
- EnumerationRangeValidationUtil.cs
- PseudoWebRequest.cs
- CertificateReferenceElement.cs
- AutomationPeer.cs
- TimeSpanFormat.cs
- Sql8ExpressionRewriter.cs
- KeyEvent.cs
- HeaderedContentControl.cs
- FtpWebRequest.cs
- WinEventTracker.cs
- TdsRecordBufferSetter.cs
- CompiledQuery.cs
- XmlSchemaValidator.cs
- SevenBitStream.cs
- HttpCacheVaryByContentEncodings.cs
- DataSourceHelper.cs
- HideDisabledControlAdapter.cs
- TextElementCollection.cs
- StorageScalarPropertyMapping.cs
- AmbientValueAttribute.cs
- InputLanguageProfileNotifySink.cs
- DeadCharTextComposition.cs
- Span.cs
- KnownTypes.cs
- OdbcError.cs
- PropertiesTab.cs
- BitmapEffect.cs
- Socket.cs
- SimplePropertyEntry.cs
- NavigatingCancelEventArgs.cs
- GroupQuery.cs
- ResourceFallbackManager.cs
- TypeConverter.cs
- PerfCounters.cs
- TabControl.cs
- SettingsPropertyValue.cs
- Lasso.cs
- StateItem.cs
- X509DefaultServiceCertificateElement.cs
- CategoryState.cs
- ToolStripStatusLabel.cs
- IntegerValidatorAttribute.cs
- MobileRedirect.cs