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 des contrats qui prennent en charge la création de flux de travail et la reprise des signets.
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 de la WorkflowHostingEndpoint classe.
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
| Nom | Description |
|---|---|
| WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
Crée une instance de la WorkflowHostingEndpoint classe avec le type de contrat, la liaison et l’adresse de point de terminaison spécifiés. |
| WorkflowHostingEndpoint(Type) |
Crée une instance de la WorkflowHostingEndpoint classe avec le type de contrat spécifié. |
Propriétés
| Nom | Description |
|---|---|
| Address |
Obtient ou définit l’adresse du 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 les comportements de point de terminaison pour le 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 au lieu d’être défini par l’utilisateur. (Hérité de ServiceEndpoint) |
| ListenUri |
Obtient ou définit l’URI auquel le point de terminaison de service écoute. (Hérité de ServiceEndpoint) |
| ListenUriMode |
Obtient ou définit la façon dont le transport gère l’URI fourni pour que le service écoute. (Hérité de ServiceEndpoint) |
| Name |
Obtient ou définit le nom du point de terminaison de service. (Hérité de ServiceEndpoint) |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
Remplacez la création d’une WorkflowCreationContext instance. |
| OnGetInstanceId(Object[], OperationContext) |
Remplacez le retour de l’ID d’instance de l’instance de flux de travail en cours de création. |
| OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
Remplacez le retour d’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) |