Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Description / DurableOperationAttribute.cs / 1305376 / DurableOperationAttribute.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Description { using System; using System.ServiceModel.Dispatcher; using System.ServiceModel.Channels; using System.ServiceModel.Administration; [AttributeUsage(AttributeTargets.Method)] public sealed class DurableOperationAttribute : Attribute, IOperationBehavior, IWmiInstanceProvider { static DurableOperationAttribute defaultInstance = new DurableOperationAttribute(); bool canCreateInstance; bool canCreateInstanceSetExplicitly; bool completesInstance; public DurableOperationAttribute() { this.completesInstance = false; } public bool CanCreateInstance { get { return this.canCreateInstance; } set { this.canCreateInstance = value; this.canCreateInstanceSetExplicitly = true; } } public bool CompletesInstance { get { return this.completesInstance; } set { this.completesInstance = value; } } internal static DurableOperationAttribute DefaultInstance { get { return defaultInstance; } } public void AddBindingParameters( OperationDescription operationDescription, BindingParameterCollection bindingParameters) { // empty } public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation) { // empty } public void ApplyDispatchBehavior( OperationDescription operationDescription, DispatchOperation dispatchOperation) { if (dispatchOperation == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("dispatchOperation"); } if (dispatchOperation.Invoker == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new InvalidOperationException( SR2.GetString( SR2.ExistingIOperationInvokerRequired, typeof(DurableOperationAttribute).Name))); } if (operationDescription == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("operationDescription"); } if (operationDescription.DeclaringContract == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument( "operationDescription", SR2.GetString(SR2.OperationDescriptionNeedsDeclaringContract)); } bool canCreate = CanCreateInstanceForOperation(dispatchOperation.IsOneWay); dispatchOperation.Invoker = new ServiceOperationInvoker( dispatchOperation.Invoker, this.CompletesInstance, canCreate, operationDescription.DeclaringContract.SessionMode != SessionMode.NotAllowed); } void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { wmiInstance.SetProperty("CanCreateInstance", this.CanCreateInstance); wmiInstance.SetProperty("CompletesInstance", this.CompletesInstance); } string IWmiInstanceProvider.GetInstanceType() { return "DurableOperationAttribute"; } public void Validate(OperationDescription operationDescription) { // empty } internal bool CanCreateInstanceForOperation(bool isOneWay) { bool canCreate = false; if (this.canCreateInstanceSetExplicitly) { canCreate = this.canCreateInstance; } else { if (isOneWay) { canCreate = false; } else { canCreate = true; } } return canCreate; } } } // 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
- CellQuery.cs
- TraceShell.cs
- WmlPanelAdapter.cs
- EdmConstants.cs
- SessionStateSection.cs
- ErrorHandler.cs
- Query.cs
- Errors.cs
- XmlSignificantWhitespace.cs
- CreateUserWizardStep.cs
- MD5.cs
- Point3D.cs
- ConfigurationStrings.cs
- WebServiceHostFactory.cs
- FileEnumerator.cs
- FilteredAttributeCollection.cs
- DynamicDataManager.cs
- DataGridViewSortCompareEventArgs.cs
- ContentPropertyAttribute.cs
- SqlBooleanizer.cs
- TargetParameterCountException.cs
- ArglessEventHandlerProxy.cs
- AnnotationStore.cs
- ModelVisual3D.cs
- DBCommand.cs
- IdentityValidationException.cs
- UInt64Storage.cs
- UnsafeNativeMethodsPenimc.cs
- SBCSCodePageEncoding.cs
- TimeZone.cs
- UserControl.cs
- SettingsPropertyIsReadOnlyException.cs
- SerializationObjectManager.cs
- DtdParser.cs
- XPathParser.cs
- SchemaDeclBase.cs
- AutomationElementCollection.cs
- httpserverutility.cs
- TextEffectCollection.cs
- jithelpers.cs
- AnnotationAdorner.cs
- PasswordRecovery.cs
- PopOutPanel.cs
- Repeater.cs
- WindowsFormsSynchronizationContext.cs
- _Win32.cs
- NamespaceCollection.cs
- ClientSession.cs
- Margins.cs
- TextBoxBaseDesigner.cs
- Debugger.cs
- DbExpressionVisitor.cs
- SystemUnicastIPAddressInformation.cs
- SecurityKeyUsage.cs
- DynamicValueConverter.cs
- Asn1Utilities.cs
- SourceChangedEventArgs.cs
- arc.cs
- PanelStyle.cs
- HtmlPanelAdapter.cs
- _ConnectStream.cs
- InvalidOleVariantTypeException.cs
- TaskCanceledException.cs
- SqlCommand.cs
- SafeArrayRankMismatchException.cs
- DragDrop.cs
- ArrangedElementCollection.cs
- BitmapFrame.cs
- OleStrCAMarshaler.cs
- MenuCommand.cs
- WarningException.cs
- BooleanKeyFrameCollection.cs
- GraphicsState.cs
- TailPinnedEventArgs.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- FillBehavior.cs
- EncryptedKeyIdentifierClause.cs
- X509CertificateValidationMode.cs
- RoleBoolean.cs
- TrustSection.cs
- Size3DConverter.cs
- NullRuntimeConfig.cs
- BindingContext.cs
- QilName.cs
- ContentPresenter.cs
- FormsAuthenticationTicket.cs
- SamlAudienceRestrictionCondition.cs
- Math.cs
- AssemblyBuilder.cs
- SecureStringHasher.cs
- InfiniteTimeSpanConverter.cs
- Byte.cs
- ColumnMap.cs
- LinkLabel.cs
- Matrix.cs
- Canvas.cs
- EntityProviderServices.cs
- DataBindingList.cs
- securestring.cs
- SoapEnumAttribute.cs