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
- DefaultPrintController.cs
- BufferedReceiveElement.cs
- XmlEntity.cs
- ValidationVisibilityAttribute.cs
- StorageEntityTypeMapping.cs
- GetCryptoTransformRequest.cs
- ScriptControlDescriptor.cs
- MultipleViewProviderWrapper.cs
- InheritanceContextHelper.cs
- ActiveXMessageFormatter.cs
- IsolatedStorageException.cs
- RolePrincipal.cs
- OuterGlowBitmapEffect.cs
- ForwardPositionQuery.cs
- XhtmlBasicValidatorAdapter.cs
- DataGridCell.cs
- TreeWalkHelper.cs
- TdsValueSetter.cs
- CheckBox.cs
- HttpListenerRequest.cs
- BinaryFormatterWriter.cs
- IdnMapping.cs
- Closure.cs
- ECDiffieHellman.cs
- TypeBuilder.cs
- BulletedList.cs
- SecurityResources.cs
- RadioButton.cs
- OleCmdHelper.cs
- WebPartsPersonalization.cs
- WebPartDisplayModeEventArgs.cs
- ProxyWebPartConnectionCollection.cs
- LeftCellWrapper.cs
- TextBounds.cs
- CodeCompiler.cs
- FormViewDeleteEventArgs.cs
- IndexOutOfRangeException.cs
- PageTheme.cs
- XamlVector3DCollectionSerializer.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ValidationSummary.cs
- DrawItemEvent.cs
- RadioButtonPopupAdapter.cs
- unsafeIndexingFilterStream.cs
- SmtpFailedRecipientException.cs
- XDeferredAxisSource.cs
- IteratorFilter.cs
- RuleSettings.cs
- SourceChangedEventArgs.cs
- SmtpAuthenticationManager.cs
- XmlSchemaElement.cs
- MappingMetadataHelper.cs
- SimplePropertyEntry.cs
- DependencyObjectType.cs
- KeyTimeConverter.cs
- EpmSyndicationContentDeSerializer.cs
- AssertSection.cs
- BitmapEffect.cs
- EmptyEnumerable.cs
- TransformerConfigurationWizardBase.cs
- JapaneseLunisolarCalendar.cs
- SelectedDatesCollection.cs
- BaseAutoFormat.cs
- KeySpline.cs
- SoapEnvelopeProcessingElement.cs
- EventLogConfiguration.cs
- ContentHostHelper.cs
- RegexWriter.cs
- PreviewControlDesigner.cs
- DocumentPageTextView.cs
- SiteMapNodeItem.cs
- IOException.cs
- DbConnectionStringBuilder.cs
- WebServicesInteroperability.cs
- propertytag.cs
- MetaChildrenColumn.cs
- DataGridViewCellStyleChangedEventArgs.cs
- ConfigurationValidatorAttribute.cs
- GZipDecoder.cs
- CompilerWrapper.cs
- ExpressionPrinter.cs
- BatchServiceHost.cs
- ToggleProviderWrapper.cs
- Decorator.cs
- BlockCollection.cs
- ContentElementCollection.cs
- TextDecorations.cs
- ClosableStream.cs
- XmlHierarchyData.cs
- TypeBuilder.cs
- RowVisual.cs
- Odbc32.cs
- ButtonChrome.cs
- Ops.cs
- SocketManager.cs
- GridViewRowEventArgs.cs
- WebServiceParameterData.cs
- QueryPageSettingsEventArgs.cs
- InvalidPipelineStoreException.cs
- EntityStoreSchemaGenerator.cs