Share via


WorkflowHostingEndpoint Sınıf

Tanım

soyut uygulaması ServiceEndpoint. İş akışı oluşturmayı ve yer işareti yeniden başlatmayı destekleyen sözleşmeleri kullanıma açmak için bu sınıftan türetilir.

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
Devralma
WorkflowHostingEndpoint
Türetilmiş

Örnekler

Aşağıdaki örnek, sınıfından WorkflowHostingEndpoint bir sınıfın nasıl türetilmiş olduğunu gösterir.

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);
    }
}

Oluşturucular

WorkflowHostingEndpoint(Type)

Belirtilen sözleşme türüyle WorkflowHostingEndpoint sınıfının yeni bir örneğini oluşturur.

WorkflowHostingEndpoint(Type, Binding, EndpointAddress)

Belirtilen sözleşme türü, bağlama ve uç nokta adresiyle sınıfının yeni bir örneğini WorkflowHostingEndpoint oluşturur.

Özellikler

Address

Hizmet uç noktası için uç nokta adresini alır veya ayarlar.

(Devralındığı yer: ServiceEndpoint)
Behaviors

Hizmet uç noktası için davranışları alır.

(Devralındığı yer: ServiceEndpoint)
Binding

Hizmet uç noktası için bağlamayı alır veya ayarlar.

(Devralındığı yer: ServiceEndpoint)
Contract

Hizmet uç noktası için sözleşmeyi alır.

(Devralındığı yer: ServiceEndpoint)
CorrelationQueries

Örneklerden oluşan CorrelationQuery bir koleksiyon alır.

EndpointBehaviors

Hizmet için uç nokta davranışlarını alır.

(Devralındığı yer: ServiceEndpoint)
IsSystemEndpoint

Hizmet uç noktasının kullanıcı tanımlı olmaktan farklı olarak sistem tarafından oluşturulup oluşturulmadığını alır veya ayarlar.

(Devralındığı yer: ServiceEndpoint)
ListenUri

Hizmet uç noktasının dinlediği URI'yi alır veya ayarlar.

(Devralındığı yer: ServiceEndpoint)
ListenUriMode

Aktarım işleminin hizmetin dinlemesi için sağlanan URI'yi nasıl işlediğini alır veya ayarlar.

(Devralındığı yer: ServiceEndpoint)
Name

Hizmet uç noktasının adını alır veya ayarlar.

(Devralındığı yer: ServiceEndpoint)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext)

Yeni WorkflowCreationContext bir örnek oluşturmak için geçersiz kılın.

OnGetInstanceId(Object[], OperationContext)

Oluşturulan iş akışı örneğinin örnek kimliğini döndürmek için geçersiz kılın.

OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object)

İş akışı örneğinde sürdürülecek bir yer işareti döndürmek için geçersiz kılın.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır