WorkflowHostingEndpoint Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Implémentation abstraite de ServiceEndpoint. Dérivez de cette classe pour exposer les contrats qui prennent en charge la création de flux de travail et la reprise de signet.
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
- Héritage
- Dérivé
Exemples
L'exemple suivant montre comment dériver une classe à partir de la classe WorkflowHostingEndpoint.
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);
}
}
Constructeurs
WorkflowHostingEndpoint(Type) |
Crée une instance de la classe WorkflowHostingEndpoint à l'aide du type de contrat spécifié. |
WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
Crée une instance de la classe WorkflowHostingEndpoint à l’aide du type de contrat, de la liaison et de l’adresse du point de terminaison spécifiés. |
Propriétés
Address |
Obtient ou définit l'adresse de point de terminaison pour le point de terminaison de service. (Hérité de ServiceEndpoint) |
Behaviors |
Obtient les comportements du point de terminaison de service. (Hérité de ServiceEndpoint) |
Binding |
Obtient ou définit la liaison pour le point de terminaison de service. (Hérité de ServiceEndpoint) |
Contract |
Obtient le contrat pour le point de terminaison de service. (Hérité de ServiceEndpoint) |
CorrelationQueries |
Obtient une collection d’instances CorrelationQuery. |
EndpointBehaviors |
Obtient le comportement des points de terminaison du service. (Hérité de ServiceEndpoint) |
IsSystemEndpoint |
Obtient ou définit si le point de terminaison de service est généré par le système, par opposition à une définition par l'utilisateur. (Hérité de ServiceEndpoint) |
ListenUri |
Obtient ou définit l'URI au niveau duquel le point de terminaison de service effectue son écoute. (Hérité de ServiceEndpoint) |
ListenUriMode |
Obtient ou définit la façon dont le transport traite l'URI qui est fourni pour le service à écouter. (Hérité de ServiceEndpoint) |
Name |
Obtient ou définit le nom du point de terminaison de service. (Hérité de ServiceEndpoint) |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
Substituez pour créer une instance de WorkflowCreationContext. |
OnGetInstanceId(Object[], OperationContext) |
Substituez pour retourner l'ID de l'instance de flux de travail créée. |
OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
Substituez pour retourner un signet à reprendre sur l'instance de flux de travail. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |