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
- ForEachDesigner.xaml.cs
- ReferencedAssembly.cs
- FontFamily.cs
- BooleanAnimationBase.cs
- CredentialCache.cs
- EntityWrapper.cs
- ListBindingHelper.cs
- DiscardableAttribute.cs
- CommentAction.cs
- CopyOnWriteList.cs
- WebServicesSection.cs
- ServiceObjectContainer.cs
- GetPageNumberCompletedEventArgs.cs
- IdentityHolder.cs
- DynamicQueryableWrapper.cs
- ImageCodecInfo.cs
- HyperLinkField.cs
- TitleStyle.cs
- UseAttributeSetsAction.cs
- JpegBitmapEncoder.cs
- ProxyDataContractResolver.cs
- FixedTextSelectionProcessor.cs
- DataGridViewRowCollection.cs
- ColorKeyFrameCollection.cs
- DocumentSchemaValidator.cs
- ConsoleKeyInfo.cs
- XmlSchemaSimpleContentExtension.cs
- TableRowGroup.cs
- EventProviderTraceListener.cs
- SqlMetaData.cs
- BindToObject.cs
- DebugController.cs
- CustomWebEventKey.cs
- Camera.cs
- XmlSchemaSimpleType.cs
- CapabilitiesPattern.cs
- CSharpCodeProvider.cs
- FileChangesMonitor.cs
- _AcceptOverlappedAsyncResult.cs
- ResolveRequestResponseAsyncResult.cs
- sqlser.cs
- XPathDescendantIterator.cs
- NativeMethods.cs
- HyperLinkColumn.cs
- SignedXmlDebugLog.cs
- SelectionUIService.cs
- Win32Exception.cs
- EntityViewGenerator.cs
- BrushConverter.cs
- CookieParameter.cs
- ColorMap.cs
- StateRuntime.cs
- HtmlTableCell.cs
- XNameTypeConverter.cs
- GCHandleCookieTable.cs
- TransactionScope.cs
- WorkflowServiceHost.cs
- EndpointConfigContainer.cs
- XamlWriter.cs
- PropVariant.cs
- ScrollChangedEventArgs.cs
- MetadataArtifactLoaderResource.cs
- CreateParams.cs
- LineServicesCallbacks.cs
- MdiWindowListStrip.cs
- PropertyEmitterBase.cs
- sqlser.cs
- BitmapEffectDrawing.cs
- PhysicalOps.cs
- FormsAuthenticationTicket.cs
- WebPartDisplayModeEventArgs.cs
- RijndaelCryptoServiceProvider.cs
- ServiceOperationInfoTypeConverter.cs
- BamlBinaryWriter.cs
- SingleConverter.cs
- StylusPointPropertyInfoDefaults.cs
- Logging.cs
- EventPrivateKey.cs
- LongTypeConverter.cs
- DataGrid.cs
- VersionedStream.cs
- CommonDialog.cs
- UnionExpr.cs
- _ConnectionGroup.cs
- SuppressedPackageProperties.cs
- Function.cs
- ObjectHandle.cs
- Type.cs
- CustomMenuItemCollection.cs
- ResXResourceWriter.cs
- StructuredCompositeActivityDesigner.cs
- FontFamilyIdentifier.cs
- StateRuntime.cs
- RoleManagerEventArgs.cs
- FixedPageProcessor.cs
- KeyValueInternalCollection.cs
- Connection.cs
- TraceContextEventArgs.cs
- RecordManager.cs
- UIElementIsland.cs