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
- fixedPageContentExtractor.cs
- SerializationInfoEnumerator.cs
- RuleElement.cs
- HtmlPhoneCallAdapter.cs
- CssTextWriter.cs
- EncodedStreamFactory.cs
- DataGridViewCellCollection.cs
- DuplexClientBase.cs
- ArgumentDesigner.xaml.cs
- BamlReader.cs
- EqualityComparer.cs
- XmlNodeComparer.cs
- HuffCodec.cs
- SoapFault.cs
- KnowledgeBase.cs
- TriState.cs
- AsymmetricAlgorithm.cs
- Byte.cs
- Tracer.cs
- Models.cs
- HTTPNotFoundHandler.cs
- FontSourceCollection.cs
- PackWebResponse.cs
- PenCursorManager.cs
- TemplateInstanceAttribute.cs
- PointHitTestResult.cs
- ExtendedPropertyCollection.cs
- XmlElementCollection.cs
- ToolStripStatusLabel.cs
- ObjectDisposedException.cs
- ConfigurationManagerInternalFactory.cs
- Accessible.cs
- FrameworkElementFactory.cs
- BuiltInExpr.cs
- ScriptResourceMapping.cs
- RelatedPropertyManager.cs
- WebPartMinimizeVerb.cs
- Events.cs
- OutOfProcStateClientManager.cs
- NativeCppClassAttribute.cs
- BitmapEffectDrawingContextState.cs
- _HelperAsyncResults.cs
- AutoResetEvent.cs
- BindableAttribute.cs
- CellQuery.cs
- GroupStyle.cs
- UriScheme.cs
- _BasicClient.cs
- GatewayDefinition.cs
- OleServicesContext.cs
- NavigationProgressEventArgs.cs
- NotifyInputEventArgs.cs
- PermissionSetTriple.cs
- SQLStringStorage.cs
- InputDevice.cs
- MultitargetUtil.cs
- LoadItemsEventArgs.cs
- SQLBytesStorage.cs
- PrePostDescendentsWalker.cs
- WebConvert.cs
- milexports.cs
- MarshalDirectiveException.cs
- InternalTypeHelper.cs
- StrokeNodeOperations2.cs
- FileDialog.cs
- ConfigurationSchemaErrors.cs
- FileDialogCustomPlaces.cs
- LayoutTable.cs
- List.cs
- ParentQuery.cs
- AssemblyNameUtility.cs
- ViewBase.cs
- TextParaLineResult.cs
- TogglePattern.cs
- ToolboxBitmapAttribute.cs
- WebPartAddingEventArgs.cs
- EventManager.cs
- StringUtil.cs
- WindowsGraphicsCacheManager.cs
- UnsafeNativeMethods.cs
- WindowsListViewGroupSubsetLink.cs
- Decimal.cs
- WindowHelperService.cs
- MailWriter.cs
- DescendantOverDescendantQuery.cs
- PropertyInformation.cs
- ContentPresenter.cs
- Calendar.cs
- AppSettings.cs
- XmlAtomicValue.cs
- AssemblyBuilder.cs
- MultiBindingExpression.cs
- CompositeTypefaceMetrics.cs
- XmlSchemaProviderAttribute.cs
- Registry.cs
- baseshape.cs
- MorphHelper.cs
- PackWebRequest.cs
- ViewStateException.cs
- Color.cs