在另一个类中获取属性值

时间:2012-05-08 16:03:55

标签: c# visual-studio-2010 workflow-foundation-4

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

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

所以我有一个IssuerDesigner,我在其构造函数方法中将所有发行者放入列表框中,并将所有这些保存在Issuer []中。

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

问题是:¿我为IssuerActivity做了什么,得到它在IssuerDesigner中分配的Issuer []?

1 个答案:

答案 0 :(得分:0)

您的问题很难遵循,但我相信这是您正在寻找的。您必须在对象上使用Reflection才能获取属性值。它应该是这样的。

        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);
                        }
                    }
                }
            }
        }