自定义工作流活动的外观的两种方式(补充)

看了下, IRegisterMetadata 接口的自定方法,发现自己代码写好了后怎么都不行。Search了一下工程发现也没有别的地方用到DesignerMetadata类。

试验了一下和CodeActivity的继承类放同一个dll,没效果。

然后放在不同的dll也没有效果。

后来终于找到问题就是dll名后加.Design,如果CodeActivity放在Penseesoft.WorkFlow.ActivityLibrary.dll里,Designer就一定要放在Penseesoft.WorkFlow.ActivityLibrary.Design.dll里。

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities.Presentation.Metadata;
using System.ComponentModel;
using Penseesoft.WorkFlow.ActivityLibrary;
using System.Windows;

namespace Penseesoft.WorkFlow.ActivityLibrary.Design
{
    public class DesignerMetadata : IRegisterMetadata
    {

        public void Register()
        {
            AttributeTableBuilder builder = new AttributeTableBuilder();
            builder.AddCustomAttributes(typeof(LeaveFlowActivity), new DesignerAttribute(typeof(LeaveFlowDesigner)));
            builder.AddCustomAttributes(typeof(First2of3), new DesignerAttribute(typeof(First2of3Designer)));
            MetadataStore.AddAttributeTable(builder.CreateTable());
        }
    }
}

原文地址:https://www.cnblogs.com/peteryu007/p/2087370.html