Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Web / WebInvokeAttribute.cs / 1 / 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, 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"; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ErrorEventArgs.cs
- HttpBrowserCapabilitiesWrapper.cs
- DBSqlParserTableCollection.cs
- MethodImplAttribute.cs
- QualifiedCellIdBoolean.cs
- InfoCardAsymmetricCrypto.cs
- XmlSchemaObjectTable.cs
- TextFormatterHost.cs
- ApplicationTrust.cs
- LogReservationCollection.cs
- RoleService.cs
- LogConverter.cs
- SortDescriptionCollection.cs
- XmlBindingWorker.cs
- ChangePassword.cs
- DistinctQueryOperator.cs
- SecurityKeyType.cs
- PropertyToken.cs
- Clock.cs
- BamlTreeNode.cs
- TextTreeDeleteContentUndoUnit.cs
- FeatureManager.cs
- GeneralTransform3DTo2D.cs
- ReadWriteObjectLock.cs
- MouseOverProperty.cs
- Size3DConverter.cs
- BinaryCommonClasses.cs
- xamlnodes.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- CodeTypeParameter.cs
- ProfessionalColors.cs
- SoapFormatterSinks.cs
- NavigationEventArgs.cs
- GenerateScriptTypeAttribute.cs
- DataFormats.cs
- DataTableNewRowEvent.cs
- ComboBox.cs
- AsymmetricKeyExchangeDeformatter.cs
- ListViewItemSelectionChangedEvent.cs
- SQLDoubleStorage.cs
- PublisherIdentityPermission.cs
- SafeNativeMethods.cs
- CustomCategoryAttribute.cs
- GridViewUpdatedEventArgs.cs
- EntityObject.cs
- ReceiveMessageContent.cs
- ComboBoxItem.cs
- EmptyEnumerator.cs
- TypeUsage.cs
- JsonWriter.cs
- InputReport.cs
- FacetValueContainer.cs
- ReadOnlyDataSource.cs
- DataControlFieldHeaderCell.cs
- FixUp.cs
- MissingManifestResourceException.cs
- Transform3DGroup.cs
- Lease.cs
- SingleStorage.cs
- XmlSerializerAssemblyAttribute.cs
- HWStack.cs
- SafeCertificateStore.cs
- WebPartDescription.cs
- SystemIcmpV6Statistics.cs
- EraserBehavior.cs
- ReferenceEqualityComparer.cs
- CheckBoxAutomationPeer.cs
- BooleanProjectedSlot.cs
- WeakEventManager.cs
- LifetimeServices.cs
- BitmapDecoder.cs
- QueryOperationResponseOfT.cs
- ScrollPattern.cs
- DataGridViewRowConverter.cs
- TextSerializer.cs
- Stopwatch.cs
- ControllableStoryboardAction.cs
- SoapAttributes.cs
- NumberFunctions.cs
- SqlException.cs
- HttpRequest.cs
- TextFormatterImp.cs
- EmbeddedMailObject.cs
- NameTable.cs
- Oid.cs
- FastEncoderWindow.cs
- _NetworkingPerfCounters.cs
- JsonObjectDataContract.cs
- cookiecontainer.cs
- ProviderBase.cs
- cookiecontainer.cs
- SqlDataSourceConnectionPanel.cs
- XmlSchemaObjectTable.cs
- BitVector32.cs
- ColumnReorderedEventArgs.cs
- PersonalizablePropertyEntry.cs
- BamlReader.cs
- DataGridColumnFloatingHeader.cs
- SessionState.cs
- DataSourceSelectArguments.cs