WorkflowHostingEndpoint Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Een abstracte implementatie van ServiceEndpoint. Afgeleid van deze klasse om contracten beschikbaar te maken die ondersteuning bieden voor het maken van werkstromen en het hervatten van bladwijzers.
public ref class WorkflowHostingEndpoint abstract : System::ServiceModel::Description::ServiceEndpoint
public abstract class WorkflowHostingEndpoint : System.ServiceModel.Description.ServiceEndpoint
type WorkflowHostingEndpoint = class
inherit ServiceEndpoint
Public MustInherit Class WorkflowHostingEndpoint
Inherits ServiceEndpoint
- Overname
- Afgeleid
Voorbeelden
In het volgende voorbeeld ziet u hoe u een klasse kunt afleiden uit de WorkflowHostingEndpoint klasse.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.ServiceModel;
using System.ServiceModel.Activities;
using System.ServiceModel.Channels;
namespace Microsoft.Samples.WF.CreationEndpoint
{
public class CreationEndpoint : WorkflowHostingEndpoint
{
static Uri defaultBaseUri;
public CreationEndpoint(Binding binding, EndpointAddress address)
: base(typeof(IWorkflowCreation), binding, address)
{
}
public CreationEndpoint():this (GetDefaultBinding(),
new EndpointAddress(new Uri(DefaultBaseUri, new Uri(Guid.NewGuid().ToString(), UriKind.Relative))))
{
}
static Uri DefaultBaseUri
{
get
{
if (defaultBaseUri == null)
{
defaultBaseUri = new Uri(string.Format(CultureInfo.InvariantCulture, "net.pipe://localhost/workflowCreationEndpoint/{0}/{1}",
Process.GetCurrentProcess().Id,
AppDomain.CurrentDomain.Id));
}
return defaultBaseUri;
}
}
//defaults to NetNamedPipeBinding
public static Binding GetDefaultBinding()
{
return new NetNamedPipeBinding(NetNamedPipeSecurityMode.None) { TransactionFlow = true };
}
protected override Guid OnGetInstanceId(object[] inputs, OperationContext operationContext)
{
//Create was called by client
if (operationContext.IncomingMessageHeaders.Action.EndsWith("Create"))
{
return Guid.Empty;
}
//CreateWithInstanceId was called by client
else if (operationContext.IncomingMessageHeaders.Action.EndsWith("CreateWithInstanceId"))
{
return (Guid)inputs[1];
}
else
{
throw new InvalidOperationException("Invalid Action: " + operationContext.IncomingMessageHeaders.Action);
}
}
protected override WorkflowCreationContext OnGetCreationContext(object[] inputs, OperationContext operationContext, Guid instanceId, WorkflowHostingResponseContext responseContext)
{
WorkflowCreationContext creationContext = new WorkflowCreationContext();
if (operationContext.IncomingMessageHeaders.Action.EndsWith("Create"))
{
Dictionary<string, object> arguments = (Dictionary<string, object>)inputs[0];
if (arguments != null && arguments.Count > 0)
{
foreach (KeyValuePair<string, object> pair in arguments)
{
//arguments to pass to the workflow
creationContext.WorkflowArguments.Add(pair.Key, pair.Value);
}
}
//reply to client with instanceId
responseContext.SendResponse(instanceId, null);
}
else if (operationContext.IncomingMessageHeaders.Action.EndsWith("CreateWithInstanceId"))
{
Dictionary<string, object> arguments = (Dictionary<string, object>)inputs[0];
if (arguments != null && arguments.Count > 0)
{
foreach (KeyValuePair<string, object> pair in arguments)
{
//arguments to pass to workflow
creationContext.WorkflowArguments.Add(pair.Key, pair.Value);
}
}
}
else
{
throw new InvalidOperationException("Invalid Action: " + operationContext.IncomingMessageHeaders.Action);
}
return creationContext;
}
}
//service contract exposed from the endpoint
[ServiceContract(Name = "IWorkflowCreation")]
public interface IWorkflowCreation
{
[OperationContract(Name = "Create")]
Guid Create(IDictionary<string, object> inputs);
[OperationContract(Name = "CreateWithInstanceId", IsOneWay=true)]
void CreateWithInstanceId(IDictionary<string, object> inputs, Guid instanceId);
}
}
Constructors
| Name | Description |
|---|---|
| WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
Hiermee maakt u een nieuw exemplaar van de WorkflowHostingEndpoint klasse met het opgegeven contracttype, de binding en het eindpuntadres. |
| WorkflowHostingEndpoint(Type) |
Hiermee maakt u een nieuw exemplaar van de WorkflowHostingEndpoint klasse met het opgegeven contracttype. |
Eigenschappen
| Name | Description |
|---|---|
| Address |
Hiermee haalt u het eindpuntadres voor het service-eindpunt op of stelt u dit in. (Overgenomen van ServiceEndpoint) |
| Behaviors |
Hiermee haalt u het gedrag voor het service-eindpunt op. (Overgenomen van ServiceEndpoint) |
| Binding |
Hiermee haalt u de binding voor het service-eindpunt op of stelt u deze in. (Overgenomen van ServiceEndpoint) |
| Contract |
Hiermee haalt u het contract voor het service-eindpunt op. (Overgenomen van ServiceEndpoint) |
| CorrelationQueries |
Hiermee haalt u een verzameling CorrelationQuery exemplaren op. |
| EndpointBehaviors |
Hiermee haalt u het gedrag van het eindpunt voor de service op. (Overgenomen van ServiceEndpoint) |
| IsSystemEndpoint |
Hiermee haalt u op of stelt u in of het service-eindpunt wordt gegenereerd door het systeem in plaats van door de gebruiker gedefinieerd te zijn. (Overgenomen van ServiceEndpoint) |
| ListenUri |
Hiermee haalt u de URI op waarop het service-eindpunt luistert of stelt u deze in. (Overgenomen van ServiceEndpoint) |
| ListenUriMode |
Hiermee haalt u op of stelt u in hoe het transport de URI verwerkt die wordt geleverd voor de service om te luisteren. (Overgenomen van ServiceEndpoint) |
| Name |
Hiermee haalt u de naam van het service-eindpunt op of stelt u deze in. (Overgenomen van ServiceEndpoint) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
Overschrijven om een nieuw WorkflowCreationContext exemplaar te maken. |
| OnGetInstanceId(Object[], OperationContext) |
Overschrijven om de exemplaar-id te retourneren voor het werkstroomexemplaren dat wordt gemaakt. |
| OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
Overschrijven om een bladwijzer te retourneren die moet worden hervat op het werkstroomexemplaren. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |