Bagikan melalui


WorkflowHostingEndpoint Kelas

Definisi

Implementasi abstrak dari ServiceEndpoint. Berasal dari kelas ini untuk mengekspos kontrak yang mendukung pembuatan alur kerja dan penerbitan marka buku.

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
Warisan
WorkflowHostingEndpoint
Turunan

Contoh

Contoh berikut menunjukkan cara mendapatkan kelas dari WorkflowHostingEndpoint kelas .

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

Konstruktor

WorkflowHostingEndpoint(Type)

Membuat instans WorkflowHostingEndpoint baru kelas dengan jenis kontrak yang ditentukan.

WorkflowHostingEndpoint(Type, Binding, EndpointAddress)

Membuat instans WorkflowHostingEndpoint baru kelas dengan jenis kontrak, pengikatan, dan alamat titik akhir yang ditentukan.

Properti

Address

Mendapatkan atau mengatur alamat titik akhir untuk titik akhir layanan.

(Diperoleh dari ServiceEndpoint)
Behaviors

Mendapatkan perilaku untuk titik akhir layanan.

(Diperoleh dari ServiceEndpoint)
Binding

Mendapatkan atau mengatur pengikatan untuk titik akhir layanan.

(Diperoleh dari ServiceEndpoint)
Contract

Mendapatkan kontrak untuk titik akhir layanan.

(Diperoleh dari ServiceEndpoint)
CorrelationQueries

Mendapatkan kumpulan CorrelationQuery instans .

EndpointBehaviors

Mendapatkan perilaku titik akhir untuk layanan.

(Diperoleh dari ServiceEndpoint)
IsSystemEndpoint

Mendapatkan atau mengatur apakah titik akhir layanan dihasilkan oleh sistem dibandingkan dengan yang ditentukan pengguna.

(Diperoleh dari ServiceEndpoint)
ListenUri

Mendapatkan atau mengatur URI tempat titik akhir layanan mendengarkan.

(Diperoleh dari ServiceEndpoint)
ListenUriMode

Mendapatkan atau mengatur cara transportasi menangani URI yang disediakan untuk didengarkan oleh layanan.

(Diperoleh dari ServiceEndpoint)
Name

Mendapatkan atau mengatur nama titik akhir layanan.

(Diperoleh dari ServiceEndpoint)

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext)

Ambil alih untuk membuat instans baru WorkflowCreationContext .

OnGetInstanceId(Object[], OperationContext)

Ambil alih untuk mengembalikan ID instans untuk instans alur kerja yang sedang dibuat.

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

Ambil alih untuk mengembalikan marka buku untuk dilanjutkan pada instans alur kerja.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk