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
- OdbcHandle.cs
- SerialPinChanges.cs
- SecurityPermission.cs
- Operand.cs
- Propagator.ExtentPlaceholderCreator.cs
- DataRecord.cs
- RotateTransform.cs
- CodeDomLocalizationProvider.cs
- ByteStreamGeometryContext.cs
- GridViewCellAutomationPeer.cs
- CompressedStack.cs
- ConfigurationStrings.cs
- XmlWriterSettings.cs
- PathNode.cs
- Glyph.cs
- Path.cs
- CaseStatement.cs
- PrimitiveXmlSerializers.cs
- FirstMatchCodeGroup.cs
- StrokeNode.cs
- ViewStateException.cs
- InputScope.cs
- SerializationSectionGroup.cs
- XDeferredAxisSource.cs
- ListItemConverter.cs
- UserCancellationException.cs
- TimerElapsedEvenArgs.cs
- WorkflowIdleElement.cs
- CheckableControlBaseAdapter.cs
- TimerEventSubscriptionCollection.cs
- HtmlInputRadioButton.cs
- clipboard.cs
- PartBasedPackageProperties.cs
- WebBrowser.cs
- SamlAuthorityBinding.cs
- InterleavedZipPartStream.cs
- ThreadAbortException.cs
- XmlSchemaException.cs
- ObjectStateFormatter.cs
- DisplayMemberTemplateSelector.cs
- ContextMenu.cs
- SqlInternalConnectionTds.cs
- BrushValueSerializer.cs
- GridSplitterAutomationPeer.cs
- SafeNativeMethods.cs
- TypedColumnHandler.cs
- DocumentViewer.cs
- WebOperationContext.cs
- XmlSchemaObject.cs
- SQLDateTime.cs
- Quad.cs
- AuthenticationManager.cs
- ControlBuilderAttribute.cs
- EdmType.cs
- LinkedDataMemberFieldEditor.cs
- X509SecurityTokenAuthenticator.cs
- IIS7UserPrincipal.cs
- ReadContentAsBinaryHelper.cs
- CacheChildrenQuery.cs
- CfgSemanticTag.cs
- LinqDataSourceSelectEventArgs.cs
- Pens.cs
- HtmlHead.cs
- TraceRecords.cs
- CultureSpecificStringDictionary.cs
- unsafenativemethodstextservices.cs
- MarkupExtensionReturnTypeAttribute.cs
- DataGridCellEditEndingEventArgs.cs
- RealizationDrawingContextWalker.cs
- StrokeNodeOperations.cs
- TypeBuilderInstantiation.cs
- UrlMappingsSection.cs
- ProfileGroupSettingsCollection.cs
- ModuleBuilder.cs
- XamlPathDataSerializer.cs
- Scheduler.cs
- DebugViewWriter.cs
- GridToolTip.cs
- RegisteredHiddenField.cs
- Pts.cs
- EdmComplexTypeAttribute.cs
- GPStream.cs
- Expression.cs
- Simplifier.cs
- SQLSingleStorage.cs
- ScriptingSectionGroup.cs
- MediaTimeline.cs
- TextLineResult.cs
- EffectiveValueEntry.cs
- ServicePoint.cs
- KeyTimeConverter.cs
- DictionaryEntry.cs
- DataGridViewCellFormattingEventArgs.cs
- PackageFilter.cs
- XslCompiledTransform.cs
- MultiPropertyDescriptorGridEntry.cs
- NativeMethods.cs
- TextCharacters.cs
- ScrollBar.cs
- HwndKeyboardInputProvider.cs