0

私は発行者に関するいくつかの情報を取得するプロジェクトに取り組んでいます。MainWindowアクティビティには、次のコード行があります。

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

だから私はIssuerDesignerを持っていて、彼のcontructorメソッドのすべてのIssuersをリストボックスに入れ、これらすべてをIssuer[]に保存します。

ここで、この再ホストされたワークフローを実行するときに、このIssuer []をIssuerActivityに送信して、すべてのタスクで分析する必要があります...

問題は次のとおりです。¿IssuerActivityがIssuerDesignerで割り当てられたIssuer[]を取得するには、どうすればよいですか。

4

1 に答える 1

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);
                        }
                    }
                }
            }
        }
于 2012-05-08T16:18:34.290 に答える