WorkflowHostingEndpoint Clase

Definición

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
WorkflowHostingEndpoint
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)

Se aplica a