WorkflowHostingEndpoint Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Implementación abstracta de ServiceEndpoint. Deriva de esta clase para exponer contratos que admiten la creación de flujos de trabajo y la reanudación de marcadores.
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
- Herencia
- Derivado
Ejemplos
En el ejemplo siguiente se muestra cómo derivar una clase de la WorkflowHostingEndpoint clase .
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);
}
}
Constructores
| Nombre | Description |
|---|---|
| WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
Crea una nueva instancia de la WorkflowHostingEndpoint clase con el tipo de contrato, el enlace y la dirección del punto de conexión especificados. |
| WorkflowHostingEndpoint(Type) |
Crea una nueva instancia de la WorkflowHostingEndpoint clase con el tipo de contrato especificado. |
Propiedades
| Nombre | Description |
|---|---|
| Address |
Obtiene o establece la dirección del punto de conexión para el punto de conexión de servicio. (Heredado de ServiceEndpoint) |
| Behaviors |
Obtiene los comportamientos del punto de conexión de servicio. (Heredado de ServiceEndpoint) |
| Binding |
Obtiene o establece el enlace para el punto de conexión de servicio. (Heredado de ServiceEndpoint) |
| Contract |
Obtiene el contrato para el punto de conexión de servicio. (Heredado de ServiceEndpoint) |
| CorrelationQueries |
Obtiene una colección de CorrelationQuery instancias de . |
| EndpointBehaviors |
Obtiene los comportamientos del punto de conexión para el servicio. (Heredado de ServiceEndpoint) |
| IsSystemEndpoint |
Obtiene o establece si el sistema genera el punto de conexión de servicio en lugar de definirse por el usuario. (Heredado de ServiceEndpoint) |
| ListenUri |
Obtiene o establece el URI en el que escucha el punto de conexión de servicio. (Heredado de ServiceEndpoint) |
| ListenUriMode |
Obtiene o establece cómo controla el transporte el URI proporcionado para que el servicio escuche. (Heredado de ServiceEndpoint) |
| Name |
Obtiene o establece el nombre del punto de conexión de servicio. (Heredado de ServiceEndpoint) |
Métodos
| Nombre | Description |
|---|---|
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
Invalide para crear una nueva WorkflowCreationContext instancia. |
| OnGetInstanceId(Object[], OperationContext) |
Invalide para devolver el identificador de instancia de la instancia de flujo de trabajo que se va a crear. |
| OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
Invalide para devolver un marcador que se reanudará en la instancia de flujo de trabajo. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |