【问题标题】:Getting attributes values in another class在另一个类中获取属性值
【发布时间】:2012-05-08 16:03:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 MrWuf。我会努力做到这一点
    猜你喜欢
    • 2018-03-15
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2015-12-12
    相关资源
    最近更新 更多