Если вы не хотите отправлять и получать информацию, это возможно с некоторой работой.Операции отправки и получения могут быть сложными для написания конечными клиентами, занимающимися вопросами корреляции.Другая сторона заключается в том, что было бы лучше, если бы для клиента был общий вход, поэтому клиенту не нужно иметь обновленную ссылку на сервис, а нужно только определение контракта.
Мы удалили все корреляции исоздал общий веб-сервис, который перенаправляет к определенному рабочему процессу xamlx, но не использует действия отправки / получения.Вместо этого мы используем закладки внутри рабочего процесса xamlx.Поэтому мы создали собственное действие для получения пользовательских данных потока страниц и другое действие для отправки данных обратно в экземпляр.Единственная проблема, с которой мы столкнулись.
public interface IWorkflowService
{
#region State Machine / Pageflow Operations
[OperationContract]
IPageflowData Start(IPageflowData pageflowData);
[OperationContract(Name = "StartWithInputs")]
IPageflowData Start(IPageflowData pageflowData, IDictionary<string, object> inputs);
[OperationContract]
IPageflowData Resume(PageflowCommand command, IPageflowData pageflowData);
[OperationContract(Name = "ResumeWithExecuteCommand")]
IPageflowData Resume(string commandName, IPageflowData pageflowData);
[OperationContract]
IPageflowData ResumeTo(string stepName, IPageflowData pageflowData);
#endregion
Это объединено с динамическими конечными точками, доступными в примерах WF, называемых WorkflowCreationEndpoint, реализующих контракт IworkflowCreation.
[ServiceContract(Name = "IWorkflowCreation")]
public interface IWorkflowCreation
{
[OperationContract(Name = "Create")]
Guid Create(IDictionary<string, object> inputs);
[OperationContract(Name = "CreateWithInstanceId", IsOneWay = true)]
void CreateWithInstanceId(Guid instanceId, IDictionary<string, object> inputs);
[OperationContract(Name = "ResumeBookmark")]
void ResumeBookmark(Guid instanceId, string bookmarkName, object bookmarkValue);
}