WorkflowHostingEndpoint Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
En abstrakt implementering av ServiceEndpoint. Härled från den här klassen för att exponera kontrakt som stöder skapande av arbetsflöden och återupptagande av bokmärken.
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
- Arv
- Härledda
Exempel
I följande exempel visas hur du härleder en klass från WorkflowHostingEndpoint klassen.
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);
}
}
Konstruktorer
| Name | Description |
|---|---|
| WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
Skapar en ny instans av WorkflowHostingEndpoint klassen med den angivna kontraktstypen, bindningen och slutpunktsadressen. |
| WorkflowHostingEndpoint(Type) |
Skapar en ny instans av WorkflowHostingEndpoint klassen med den angivna kontraktstypen. |
Egenskaper
| Name | Description |
|---|---|
| Address |
Hämtar eller anger slutpunktsadressen för tjänstslutpunkten. (Ärvd från ServiceEndpoint) |
| Behaviors |
Hämtar beteendet för tjänstslutpunkten. (Ärvd från ServiceEndpoint) |
| Binding |
Hämtar eller anger bindningen för tjänstslutpunkten. (Ärvd från ServiceEndpoint) |
| Contract |
Hämtar kontraktet för tjänstslutpunkten. (Ärvd från ServiceEndpoint) |
| CorrelationQueries |
Hämtar en samling CorrelationQuery instanser . |
| EndpointBehaviors |
Hämtar slutpunktsbeteenden för tjänsten. (Ärvd från ServiceEndpoint) |
| IsSystemEndpoint |
Hämtar eller anger om tjänstslutpunkten genereras av systemet i stället för att vara användardefinierad. (Ärvd från ServiceEndpoint) |
| ListenUri |
Hämtar eller anger den URI som tjänstslutpunkten lyssnar på. (Ärvd från ServiceEndpoint) |
| ListenUriMode |
Hämtar eller anger hur transporten hanterar den URI som tillhandahålls för tjänsten att lyssna på. (Ärvd från ServiceEndpoint) |
| Name |
Hämtar eller anger namnet på tjänstslutpunkten. (Ärvd från ServiceEndpoint) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
Åsidosätt för att skapa en ny WorkflowCreationContext instans. |
| OnGetInstanceId(Object[], OperationContext) |
Åsidosätt för att returnera instans-ID:t för arbetsflödesinstansen som skapas. |
| OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
Åsidosätt för att returnera ett bokmärke som ska återupptas på arbetsflödesinstansen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |