Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Activities / Description / WorkflowRuntimeEndpoint.cs / 1305376 / WorkflowRuntimeEndpoint.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Activities.Description { using System.Activities.Statements; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; using System.Runtime; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; using System.Runtime.DurableInstancing; using System.Collections.Generic; using System.Threading; using System.ServiceModel.Diagnostics; using System.Activities; public class WorkflowRuntimeEndpoint : WorkflowHostingEndpoint { static readonly Uri baseUri = new Uri(string.Format(CultureInfo.InvariantCulture, "net.pipe://localhost/ExternalDataExchangeEndpoint/{0}/{1}", Process.GetCurrentProcess().Id, AppDomain.CurrentDomain.Id)); static int uriCounter = 0; internal static readonly Binding netNamedPipeContextBinding = new CustomBinding(new ContextBindingElement(), new BinaryMessageEncodingBindingElement(), new NamedPipeTransportBindingElement()) { Name = "ExternalDataExchangeBinding" }; WorkflowRuntimeServicesBehavior behavior; internal const string ExternalDataExchangeNamespace = "http://wf.microsoft.com/externaldataexchange/"; internal const string RaiseEventAction = "http://wf.microsoft.com/externaldataexchange/IExternalDataExchange/RaiseEvent"; public WorkflowRuntimeEndpoint() : base(typeof(IExternalDataExchange)) { base.Binding = netNamedPipeContextBinding; string endpointUri = String.Format(CultureInfo.InvariantCulture, "{0}/{1}", baseUri, Interlocked.Increment(ref uriCounter)); base.Address = new EndpointAddress(endpointUri); this.behavior = new WorkflowRuntimeServicesBehavior(); this.Behaviors.Add(behavior); } protected override Guid OnGetInstanceId(object[] inputs, OperationContext operationContext) { Fx.Assert(operationContext.IncomingMessageHeaders.Action == RaiseEventAction, "Message action is not RaiseEvent"); Guid instanceId = Guid.Empty; ContextMessageProperty contextMessageProperty; if (ContextMessageProperty.TryGet(operationContext.IncomingMessageProperties, out contextMessageProperty)) { string stringInstanceId = null; if (contextMessageProperty.Context.TryGetValue("instanceId", out stringInstanceId)) { Fx.TryCreateGuid(stringInstanceId, out instanceId); } } return instanceId; } protected override Bookmark OnResolveBookmark(object[] inputs, OperationContext operationContext, WorkflowHostingResponseContext responseContext, out object value) { Fx.Assert(operationContext.IncomingMessageHeaders.Action == RaiseEventAction, "Message action is not RaiseEvent"); Fx.Assert(inputs.Length >= 3, "Insufficient number of inputs"); Fx.Assert(inputs[1] is IComparable, "The queue name from ExternalDataExchangeService is not an IComparable object"); IComparable queueName = (IComparable)inputs[1]; value = inputs[2]; responseContext.SendResponse(null, null); return new Bookmark(queueName.ToString()); } public void AddService(object service) { behavior.AddService(service); } public void RemoveService(object service) { behavior.RemoveService(service); } public object GetService(Type serviceType) { return behavior.GetService(serviceType); } public T GetService() { return behavior.GetService (); } } } // 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
- LogoValidationException.cs
- RootProfilePropertySettingsCollection.cs
- DesignBindingConverter.cs
- FigureParaClient.cs
- CaseStatementSlot.cs
- SqlUdtInfo.cs
- X509PeerCertificateAuthenticationElement.cs
- ClockGroup.cs
- CacheChildrenQuery.cs
- Propagator.JoinPropagator.cs
- DataServiceQueryContinuation.cs
- BamlLocalizationDictionary.cs
- WindowsGraphicsWrapper.cs
- COAUTHINFO.cs
- ObjectComplexPropertyMapping.cs
- Matrix3D.cs
- EventNotify.cs
- Asn1Utilities.cs
- RequestStatusBarUpdateEventArgs.cs
- versioninfo.cs
- DeviceFilterDictionary.cs
- HotSpot.cs
- CodeAttachEventStatement.cs
- BufferedWebEventProvider.cs
- NullRuntimeConfig.cs
- AspNetSynchronizationContext.cs
- CardSpacePolicyElement.cs
- StringDictionaryCodeDomSerializer.cs
- StructuredProperty.cs
- TextBlock.cs
- ProcessModelSection.cs
- DebuggerAttributes.cs
- UnmanagedBitmapWrapper.cs
- UnknownMessageReceivedEventArgs.cs
- TraceEventCache.cs
- wgx_render.cs
- CompilerWrapper.cs
- UnsupportedPolicyOptionsException.cs
- OracleParameter.cs
- Point.cs
- ExpressionEvaluator.cs
- SafeFileMappingHandle.cs
- SqlReferenceCollection.cs
- SqlXmlStorage.cs
- LinkedResource.cs
- TypeLoadException.cs
- ADMembershipUser.cs
- SimpleApplicationHost.cs
- DefaultSection.cs
- GridViewRow.cs
- ReachPageContentCollectionSerializer.cs
- DropDownList.cs
- Stroke.cs
- FormsAuthenticationUserCollection.cs
- UpdateException.cs
- PolicyLevel.cs
- TextElementCollectionHelper.cs
- Events.cs
- WebPartDisplayModeCollection.cs
- DomNameTable.cs
- SequentialUshortCollection.cs
- XmlBinaryWriter.cs
- MessageSecurityOverTcp.cs
- AdapterDictionary.cs
- ScriptControlManager.cs
- ChameleonKey.cs
- DispatchProxy.cs
- PermissionListSet.cs
- FixedPageStructure.cs
- wgx_render.cs
- ClientSettingsProvider.cs
- ObjectItemCachedAssemblyLoader.cs
- EditorZoneDesigner.cs
- IssuedTokenParametersElement.cs
- VisualStates.cs
- AccessKeyManager.cs
- EncoderFallback.cs
- WindowClosedEventArgs.cs
- XmlAggregates.cs
- DataGridViewSelectedCellCollection.cs
- ellipse.cs
- ExtensibleClassFactory.cs
- Process.cs
- RuleProcessor.cs
- DesignTimeParseData.cs
- SerializationHelper.cs
- StyleXamlTreeBuilder.cs
- FixedTextContainer.cs
- WindowsMenu.cs
- BeginStoryboard.cs
- AsymmetricCryptoHandle.cs
- WorkflowDesignerColors.cs
- CommonXSendMessage.cs
- DSGeneratorProblem.cs
- SourceInterpreter.cs
- SqlInfoMessageEvent.cs
- Model3DGroup.cs
- PlatformNotSupportedException.cs
- XmlAnyAttributeAttribute.cs
- ObjectFactoryCodeDomTreeGenerator.cs