WorkflowHostingEndpoint Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Abstraktní implementace ServiceEndpoint. Odvozujte z této třídy a zpřístupňujte kontrakty, které podporují vytváření pracovních postupů a obnovení záložek.
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
- Dědičnost
- Odvozené
Příklady
Následující příklad ukazuje, jak odvodit třídu z WorkflowHostingEndpoint třídy.
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);
}
}
Konstruktory
| Name | Description |
|---|---|
| WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
Vytvoří novou instanci WorkflowHostingEndpoint třídy se zadaným typem kontraktu, vazbou a adresou koncového bodu. |
| WorkflowHostingEndpoint(Type) |
Vytvoří novou instanci WorkflowHostingEndpoint třídy se zadaným typem kontraktu. |
Vlastnosti
| Name | Description |
|---|---|
| Address |
Získá nebo nastaví adresu koncového bodu pro koncový bod služby. (Zděděno od ServiceEndpoint) |
| Behaviors |
Získá chování koncového bodu služby. (Zděděno od ServiceEndpoint) |
| Binding |
Získá nebo nastaví vazbu pro koncový bod služby. (Zděděno od ServiceEndpoint) |
| Contract |
Získá kontrakt pro koncový bod služby. (Zděděno od ServiceEndpoint) |
| CorrelationQueries |
Získá kolekci CorrelationQuery instancí . |
| EndpointBehaviors |
Získá chování koncového bodu pro službu. (Zděděno od ServiceEndpoint) |
| IsSystemEndpoint |
Získá nebo nastaví, zda je koncový bod služby generován systémem na rozdíl od uživatelem definované. (Zděděno od ServiceEndpoint) |
| ListenUri |
Získá nebo nastaví identifikátor URI, ve kterém koncový bod služby naslouchá. (Zděděno od ServiceEndpoint) |
| ListenUriMode |
Získá nebo nastaví, jak přenos zpracovává identifikátor URI, který je k dispozici pro službu naslouchání. (Zděděno od ServiceEndpoint) |
| Name |
Získá nebo nastaví název koncového bodu služby. (Zděděno od ServiceEndpoint) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
Přepsání pro vytvoření nové WorkflowCreationContext instance |
| OnGetInstanceId(Object[], OperationContext) |
Přepsání pro vrácení ID instance pro instanci pracovního postupu, která se vytváří. |
| OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
Přepsání pro vrácení záložky, která se má obnovit v instanci pracovního postupu. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |