Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Web / WebInvokeAttribute.cs / 1305376 / WebInvokeAttribute.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Web { using System; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; using System.ServiceModel.Channels; using System.ServiceModel.Web; using System.ServiceModel.Administration; [AttributeUsage(AttributeTargets.Method)] public sealed class WebInvokeAttribute : Attribute, IOperationContractAttributeProvider, IOperationBehavior, IWmiInstanceProvider { WebMessageBodyStyle bodyStyle; bool isBodyStyleDefined; bool isRequestMessageFormatSet; bool isResponseMessageFormatSet; string method; // http verb WebMessageFormat requestMessageFormat; WebMessageFormat responseMessageFormat; string uriTemplate; // Note: HttpTransferEndpointBehavior interprets uriTemplate as: null means 'no opinion', whereas string.Empty means relative path of "" public WebInvokeAttribute() { } public WebMessageBodyStyle BodyStyle { get { return this.bodyStyle; } set { if (!WebMessageBodyStyleHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.bodyStyle = value; this.isBodyStyleDefined = true; } } public bool IsBodyStyleSetExplicitly { get { return this.isBodyStyleDefined; } } public bool IsRequestFormatSetExplicitly { get { return this.isRequestMessageFormatSet; } } public bool IsResponseFormatSetExplicitly { get { return this.isResponseMessageFormatSet; } } public string Method { get { return this.method; } set { this.method = value; } } public WebMessageFormat RequestFormat { get { return this.requestMessageFormat; } set { if (!WebMessageFormatHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.requestMessageFormat = value; this.isRequestMessageFormatSet = true; } } public WebMessageFormat ResponseFormat { get { return this.responseMessageFormat; } set { if (!WebMessageFormatHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.responseMessageFormat = value; this.isResponseMessageFormatSet = true; } } public string UriTemplate { get { return this.uriTemplate; } set { this.uriTemplate = value; } } void IOperationBehavior.AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters) { }// do nothing void IOperationBehavior.ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation) { }// do nothing void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { }// do nothing void IOperationBehavior.Validate(OperationDescription operationDescription) { }// do nothing internal WebMessageBodyStyle GetBodyStyleOrDefault(WebMessageBodyStyle defaultStyle) { if (this.IsBodyStyleSetExplicitly) { return this.BodyStyle; } else { return defaultStyle; } } void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { if (wmiInstance == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("wmiInstance"); } wmiInstance.SetProperty("BodyStyle", this.BodyStyle.ToString()); wmiInstance.SetProperty("IsBodyStyleSetExplicitly", this.IsBodyStyleSetExplicitly.ToString()); wmiInstance.SetProperty("RequestFormat", this.RequestFormat.ToString()); wmiInstance.SetProperty("IsRequestFormatSetExplicitly", this.IsRequestFormatSetExplicitly.ToString()); wmiInstance.SetProperty("ResponseFormat", this.ResponseFormat.ToString()); wmiInstance.SetProperty("IsResponseFormatSetExplicitly", this.IsResponseFormatSetExplicitly.ToString()); wmiInstance.SetProperty("UriTemplate", this.UriTemplate); wmiInstance.SetProperty("Method", this.Method); } string IWmiInstanceProvider.GetInstanceType() { return "WebInvokeAttribute"; } OperationContractAttribute IOperationContractAttributeProvider.GetOperationContractAttribute() { return new OperationContractAttribute(); } } } // 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
- BufferAllocator.cs
- AngleUtil.cs
- RectAnimationBase.cs
- SchemaAttDef.cs
- FontInfo.cs
- LicenseProviderAttribute.cs
- DummyDataSource.cs
- FormatterServices.cs
- PasswordBox.cs
- TypefaceMetricsCache.cs
- CorrelationManager.cs
- Accessible.cs
- SqlInternalConnectionTds.cs
- MouseEventArgs.cs
- UserValidatedEventArgs.cs
- Lasso.cs
- LOSFormatter.cs
- DesignOnlyAttribute.cs
- DESCryptoServiceProvider.cs
- CookieProtection.cs
- MailAddressCollection.cs
- fixedPageContentExtractor.cs
- SqlTransaction.cs
- AdRotator.cs
- TaiwanCalendar.cs
- FontStyleConverter.cs
- SafeEventLogReadHandle.cs
- WindowsListViewScroll.cs
- SessionPageStateSection.cs
- BindingEntityInfo.cs
- InternalPolicyElement.cs
- SqlDataSourceFilteringEventArgs.cs
- PkcsMisc.cs
- ColumnWidthChangedEvent.cs
- AssertSection.cs
- TdsParserHelperClasses.cs
- SortQuery.cs
- ToolboxComponentsCreatingEventArgs.cs
- remotingproxy.cs
- AppDomainAttributes.cs
- RegexMatch.cs
- OracleCommand.cs
- SdlChannelSink.cs
- DocumentEventArgs.cs
- ScrollBar.cs
- PaintEvent.cs
- HTMLTextWriter.cs
- UIInitializationException.cs
- WindowsEditBox.cs
- QueryCursorEventArgs.cs
- HttpCapabilitiesEvaluator.cs
- ResourcePermissionBase.cs
- NgenServicingAttributes.cs
- IdnMapping.cs
- TraceSection.cs
- DBSqlParser.cs
- HashRepartitionStream.cs
- ThreadLocal.cs
- SafeThemeHandle.cs
- DataGridViewHeaderCell.cs
- WindowsSecurityToken.cs
- HwndHostAutomationPeer.cs
- SmtpNtlmAuthenticationModule.cs
- CompilerGeneratedAttribute.cs
- PieceDirectory.cs
- RemoteWebConfigurationHost.cs
- WorkflowQueueInfo.cs
- DataGridPagingPage.cs
- RegistryPermission.cs
- XPathNodeHelper.cs
- WebPartCatalogCloseVerb.cs
- Int32AnimationUsingKeyFrames.cs
- BoundPropertyEntry.cs
- TextParaLineResult.cs
- HtmlDocument.cs
- Int32Rect.cs
- WebReferenceOptions.cs
- TemplateManager.cs
- InkPresenter.cs
- LoginView.cs
- PixelFormatConverter.cs
- ScopelessEnumAttribute.cs
- RequestQueue.cs
- SBCSCodePageEncoding.cs
- BackgroundFormatInfo.cs
- UrlEncodedParameterWriter.cs
- AssociationSet.cs
- ImportOptions.cs
- PowerStatus.cs
- ExtendedProtectionPolicyTypeConverter.cs
- UpdateCommand.cs
- AttributeData.cs
- RepeatButton.cs
- Misc.cs
- XmlHelper.cs
- EntityReference.cs
- FreezableCollection.cs
- EditingCommands.cs
- PathHelper.cs
- XmlChoiceIdentifierAttribute.cs