WorkflowHostingEndpoint クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ServiceEndpoint の抽象実装。 このクラスから派生して、ワークフローの作成とブックマークの再開をサポートするコントラクトを公開します。
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
- 継承
- 派生
例
次の例では、WorkflowHostingEndpoint クラスからクラスを派生させる方法を示します。
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);
}
}
コンストラクター
WorkflowHostingEndpoint(Type) |
指定したコントラクト型を使用して WorkflowHostingEndpoint クラスの新しいインスタンスを作成します。 |
WorkflowHostingEndpoint(Type, Binding, EndpointAddress) |
指定したコントラクト型、バインド、およびエンドポイント アドレスを使用して、WorkflowHostingEndpoint クラスの新しいインスタンスを作成します。 |
プロパティ
Address |
サービス エンドポイントのエンドポイント アドレスを取得または設定します。 (継承元 ServiceEndpoint) |
Behaviors |
サービス エンドポイントの動作を取得します。 (継承元 ServiceEndpoint) |
Binding |
サービス エンドポイントのバインディングを取得または設定します。 (継承元 ServiceEndpoint) |
Contract |
サービス エンドポイントのコントラクトを取得します。 (継承元 ServiceEndpoint) |
CorrelationQueries |
CorrelationQuery のインスタンスのコレクションを取得します。 |
EndpointBehaviors |
サービスのエンドポイントの動作を取得します。 (継承元 ServiceEndpoint) |
IsSystemEndpoint |
サービス エンドポイントがユーザーによって定義されるのではなく、システムによって生成されるかどうかを取得または設定します。 (継承元 ServiceEndpoint) |
ListenUri |
サービス エンドポイントがリッスンする URI を取得または設定します。 (継承元 ServiceEndpoint) |
ListenUriMode |
リッスンするサービスに提供される URI をトランスポートが処理する方法を指定する値を取得または設定します。 (継承元 ServiceEndpoint) |
Name |
サービス エンドポイントの名前を取得または設定します。 (継承元 ServiceEndpoint) |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnGetCreationContext(Object[], OperationContext, Guid, WorkflowHostingResponseContext) |
オーバーライドして新しい WorkflowCreationContext インスタンスを作成します。 |
OnGetInstanceId(Object[], OperationContext) |
オーバーライドして、作成されるワークフロー インスタンスのインスタンス ID を返します。 |
OnResolveBookmark(Object[], OperationContext, WorkflowHostingResponseContext, Object) |
オーバーライドして、ワークフロー インスタンスで再開するブックマークを返します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET