2012-05-08 2 views
0

Я работаю над проектом, чтобы получить информацию об эмитентах. В MainWindow деятельности у меня есть эта строка кода:Получение значений атрибутов в другом классе

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

Так у меня есть IssuerDesigner, что я положил в ListBox все эмитентам в его методе застройщик и спасти меня в эмитенте [] все из них.

Теперь, когда я выполняю этот rehosted рабочий процесс, мне нужно отправить это Эмитент [], чтобы IssuerActivity к анализируются в Еогеасп задачи каждого из них ...

Вопрос: ¿Что мне нужно сделать, чтобы ЭмитентActivity получает Эмитент [], который присвоен в эмитентеDesigner?

ответ

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

Thanks MrWuf. Я постараюсь сделать это –

Смежные вопросы