I was aware that it was possible to add code to a XOML workflow but I hadn't actually seen any examples of it, until I started looking into the Metastorm WF integration. I'm not sure it's something I'd like to do, it's pretty ugly and I like the idea of producing a workflow definition in a purely declarative manner. That way you're forced to put real code in their own activities which I think helps the overall design of your system. However there is one place where it isn't possible to do everything in XML, when you need to add a property to a XOML workflow. So here's an example of that. If you get stuck using this, you're on your own, I don't know much about it and the documentation seems a bit thin on the ground. Here's hoping that MS add support for XOML properties in the next release...
<x:Code><![CDATA[//<?xml version="1.0" encoding="utf-16"?> //<XCodeItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="XCodeProperty"> // <MemberTypeName>System.Boolean</MemberTypeName> // <MemberName>Thingy</MemberName> // <EmitDependencyProperty>true</EmitDependencyProperty> // <IsMetaProperty>false</IsMetaProperty> // <IsAttached>false</IsAttached> // <IsReadOnly>false</IsReadOnly> //</XCodeItem> public static System.Workflow.ComponentModel.DependencyProperty ThingyProperty = DependencyProperty.Register("Thingy", typeof(System.Boolean), typeof(MyWorkflow)); public bool Thingy { get { return ((bool)(base.GetValue(MyWorkflow.ThingyProperty))); } set { base.SetValue(MyWorkflow.ThingyProperty, value); } } ]]></x:Code>
No comments:
Post a Comment