2012-05-08 25 views
0

私は、発行者に関するいくつかの情報を得るためにプロジェクトに取り組んでいます。 別のクラスの属性値を取得する

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

は、だから私は、私は彼のコンストラクタメソッドでリストボックスに発行者のすべてを置くIssuerDesignerを持っていると私は発行者[]これらの全てに保存します。メインウィンドウの活動では、私はこのコード行を持っています。

私はこのリホストワークフローを実行したときに今、私はそれらのforeachのタスクみんなでanalizedするIssuerActivityに[]この発行者を送信する必要があります...

質問です:¿私は何をすべきかIssuerActivityがIssuer []を取得してIssuerDesignerに割り当てられていますか?

答えて

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

ありがとうMrWuf。私はこれをやろうとします –

関連する問題