WorkflowHostingEndpoint Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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) |