Приветствую всех и каждого!
Я новичок в WF 4.0 и WWF в целом, так что простите меня, если это похоже на вопрос типа новичка, но поверьте мне, я изучил все глубины Интернетадля решения этой проблемы, но безрезультатно.
Я создал образец приложения WF с настраиваемой CodeActivity, для которого требуется расширение, как показано ниже:
public sealed class PreparePizza : CodeActivity
{
public InArgument<Order> Order { get; set; }
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
base.CacheMetadata(metadata);
if (this.Order == null)
metadata.AddValidationError("You must supply an Order.");
metadata.RequireExtension<IPreparePizzaExtension>();
}
// If your activity returns a value, derive from CodeActivity<TResult>
// and return the value from the Execute method.
protected override void Execute(CodeActivityContext context)
{
// Obtain the runtime value of the Text input argument
Order order = context.GetValue(this.Order);
var extension = context.GetExtension<IPreparePizzaExtension>();
extension.Prepare(order);
}
}
public interface IPreparePizzaExtension
{
void Prepare(Order order);
}
Iзатем вставьте это действие в службу рабочего процесса и попытайтесь использовать его через мое веб-приложение, добавив ссылку на службу.Однако, когда я добавляю ссылку, я получаю:
System.Activities.ValidationException: расширение для типа «PizzaMan.ActivityLibrary.IPreparePizzaExtension» должно быть настроено для запуска этого рабочего процесса.
Достаточно справедливо - конечно, моя деятельность требует, чтобы я передал ему реализацию IPreparePizzaExtension - в конце концов, я сказал это!
Так что мой вопрос, как же я могу передать этона службу?Я могу достаточно легко управлять этим в сценарии консольного приложения, используя WorkflowInvoker, но я не вижу никакого очевидного способа сделать это с помощью сервисного подхода.Я бы предположил, что, очевидно, программный подход к добавлению ссылки - это то, что нужно, но опять же я не знаю, как именно это сделать.
Любая помощь будет принята с благодарностью.
С наилучшими пожеланиями, Ян