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
- SafeRegistryHandle.cs
- BufferedStream.cs
- SQLMoney.cs
- SmuggledIUnknown.cs
- SmtpCommands.cs
- OleDbPermission.cs
- ReaderWriterLock.cs
- WebAdminConfigurationHelper.cs
- TextRange.cs
- StringInfo.cs
- BamlBinaryWriter.cs
- DoubleCollectionValueSerializer.cs
- HtmlToClrEventProxy.cs
- IdentityHolder.cs
- QueryCacheManager.cs
- CapacityStreamGeometryContext.cs
- HostingEnvironment.cs
- EntityDataSourceDataSelection.cs
- MimeTypeMapper.cs
- TypeReference.cs
- Run.cs
- DbDataReader.cs
- HttpListenerException.cs
- BulletedListDesigner.cs
- SQLByte.cs
- XmlElementAttributes.cs
- XamlBuildProvider.cs
- Assert.cs
- FixedSOMTextRun.cs
- RenamedEventArgs.cs
- BaseTreeIterator.cs
- HMACSHA384.cs
- EntityContainerEntitySet.cs
- EndpointReference.cs
- Substitution.cs
- ToolboxComponentsCreatingEventArgs.cs
- NativeMethods.cs
- BinaryWriter.cs
- StreamBodyWriter.cs
- XsdDuration.cs
- KeyGesture.cs
- CoTaskMemHandle.cs
- Color.cs
- RectConverter.cs
- Certificate.cs
- DataGridViewColumnTypePicker.cs
- PathHelper.cs
- SafeArrayTypeMismatchException.cs
- SqlExpressionNullability.cs
- MessageFilter.cs
- PartManifestEntry.cs
- EdmPropertyAttribute.cs
- PasswordTextNavigator.cs
- ResourceBinder.cs
- XmlConverter.cs
- CompositeDataBoundControl.cs
- ParenthesizePropertyNameAttribute.cs
- HierarchicalDataBoundControl.cs
- RemoteWebConfigurationHost.cs
- AttributeAction.cs
- JapaneseCalendar.cs
- VirtualizedItemPattern.cs
- XmlSchemaComplexContent.cs
- SectionInput.cs
- InvalidFilterCriteriaException.cs
- NonBatchDirectoryCompiler.cs
- ScrollPattern.cs
- VariantWrapper.cs
- XmlObjectSerializerContext.cs
- TraceHandler.cs
- PageSetupDialog.cs
- XmlEventCache.cs
- XmlNode.cs
- xmlfixedPageInfo.cs
- FunctionQuery.cs
- ErrorFormatterPage.cs
- OAVariantLib.cs
- VirtualPathProvider.cs
- DefaultSerializationProviderAttribute.cs
- DataSourceCache.cs
- WebScriptMetadataMessageEncoderFactory.cs
- HotSpotCollection.cs
- WebPartConnectionCollection.cs
- InputProviderSite.cs
- TabletDevice.cs
- PopOutPanel.cs
- HealthMonitoringSectionHelper.cs
- XPathEmptyIterator.cs
- SqlServices.cs
- WindowsListViewItemCheckBox.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ActivityBuilder.cs
- CheckBoxFlatAdapter.cs
- XamlFxTrace.cs
- AdjustableArrowCap.cs
- CompiledQueryCacheKey.cs
- parserscommon.cs
- ZipArchive.cs
- TileModeValidation.cs
- Transform.cs