0

我正在一个项目中获取有关发行人的一些信息。在 MainWindow 活动中,我有这行代码:

 builder.AddCustomAttributes(typeof(IssuerActivity), new DesignerAttribute(typeof(IssuerDesigner)));

所以我有一个 IssuerDesigner,我在他的构造方法中将所有 Issuer 放入列表框中,并将所有这些都保存在 Issuer [] 中。

现在,当我执行这个重新托管的工作流时,我需要将此 Issuer[] 发送到 IssuerActivity,以便在他们每个人的 foreach 任务中进行分析......

问题是:¿我需要做什么才能让 IssuerActivity 获得在 IssuerDesigner 中分配的 Issuer[]?

4

1 回答 1

0

你的问题很难理解,但我相信这就是你要找的。您必须在对象上使用反射才能获取属性值。它应该是这样的。

        MemberInfo[] members = builder.GetType().GetProperties();
        foreach (MemberInfo m in members)
        {
            if (m.MemberType == MemberTypes.Property)
            {
                PropertyInfo p = m as PropertyInfo;
                object[] attribs = p.GetCustomAttributes(false);
                foreach (object attr in attribs)
                {
                    IssuerDesigner d = attr as IssuerDesigner;
                    if (d != null)
                    {

                        foreach(object obj in d.Issuer)
                        {
                             DoSomething(obj);
                        }
                    }
                }
            }
        }
于 2012-05-08T16:18:34.290 回答