デザイナーを再ホストしようとしていますが、デザイナーにワークフローを平手打ちするたびに:
_workflowDesigner = new WorkflowDesigner();
// added to UI here
Properties.Content = _workflowDesigner.PropertyInspectorView;
_workflowDesigner.Load(myWorkflowInstance);
ここmyWorkflowInstance
で、参照アセンブリで定義されたワークフローです。Register
デフォルトのアクティビティ メタデータを登録するための魔法を実行しました。
new DesignerMetadata().Register();
そして、すべてのカスタム NativeActivities を登録しました。
public static void Register(IEnumerable<Type> activityTypes)
{
// activityTypes are all my custom NativeActivities
// and all workflows (root of System.Activities.Activity)
var builder = new AttributeTableBuilder();
var attrGroups =
from x in activityTypes
from y in x.GetCustomAttributes(true).OfType<Attribute>()
group y by x into g
select g;
foreach (var typeGroup in attrGroups)
builder.AddCustomAttributes(typeGroup.Key, typeGroup.ToArray());
MetadataStore.AddAttributeTable(builder.CreateTable());
}
それでも、デザイナーでアクティビティをロードすると、次のようになります。
ここで何が欠けていますか?
これらのワークフローがコンパイルされ、アクティビティの実装プロパティ内にのみ存在するという事実と関係があると思います...