Reflection и произвольные типы
От: Аноним  
Дата: 26.04.07 12:10
Оценка:
Вопрос Как В классе для произвольных типов получить значение --- другого класса (формирующего для типа в котором происходит его рождение набор параметров основывающихся на структуре этого типа) и посему рождаемому Static ---

Вопрос если вглядеться прост, а обяснить сложновато tpp.GetField("Save_param").GetValue(null) и подобное пишет что не хочу потому что оно Static (я так понял,а дословно is not a field on the target object which is of type 'System.RuntimeType



.
internal class Rabota
{...
  internal static PROP<Rabota> Info = new PROP<Rabota>();
...
}
----------------------------------------------------------------
class ABL<T>
{...
Type tp;
FieldInfo Irrrr;
....
internal ABL()
   {
     tp = typeof(T);
     ....
     Irrrr = tp.GetField("Info", BindingFlags.NonPublic | BindingFlags.Static);
     ....        
   }
метод ()
   {....
    if (Irrrr != null){
                      Type tpp = typeof(TABL_PROP<T>);
                       //ВОПРОС КАК ПОЛУЧИТЬ ЗДЕСЬ ЗНАЧЕНИЕ  Save_param?????                   
                     }
   }
}
-------------------------------------------------------------------
class PROP<T>
{....
     public int Save_param;
     int Load_param;
....
     PROP<Rabota>(){................}
.....
}

Re: Reflection и произвольные типы
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.04.07 12:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
.
А>                       //ВОПРОС КАК ПОЛУЧИТЬ ЗДЕСЬ ЗНАЧЕНИЕ  Save_param?????                   
А>

А>

Может быть, так:

int sp = new PROP<T>().Save_param;

Re: Reflection и произвольные типы
От: _FRED_ Черногория
Дата: 26.04.07 12:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>метод ()
А>   {....
А>    if (Irrrr != null){
А>                      //ВОПРОС КАК ПОЛУЧИТЬ ЗДЕСЬ ЗНАЧЕНИЕ  Save_param?????
А>                      Type tpp = Irrrr.GetType();
                        object Save_param = tpp.GetField("Save_param").GetValue(Irrrr);
А>                     }
А>   }
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Reflection и произвольные типы
От: Black_delfin  
Дата: 26.04.07 12:45
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Аноним, Вы писали:


А>>
.
А>>                       //ВОПРОС КАК ПОЛУЧИТЬ ЗДЕСЬ ЗНАЧЕНИЕ  Save_param?????                   
А>>

А>>

N>Может быть, так:


N>
N>int sp = new PROP<T>().Save_param;
N>

N>

Конструктор тоже не один и много раз перегружен нужен объект с конкретного класса
delfin :)
Re[2]: Reflection и произвольные типы
От: Black_delfin  
Дата: 26.04.07 12:48
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Аноним, Вы писали:


_FR>
А>>метод ()
А>>   {....
А>>    if (Irrrr != null){
А>>                      //ВОПРОС КАК ПОЛУЧИТЬ ЗДЕСЬ ЗНАЧЕНИЕ  Save_param?????
А>>                      Type tpp = Irrrr.GetType();
_FR>                        object Save_param = tpp.GetField("Save_param").GetValue(Irrrr);
А>>                     }
А>>   }
_FR>


Irrrr.GetType() не тот тип


Вобще то Irrrr.FieldType
но все равно, работать не будет
delfin :)
Re[3]: Reflection и произвольные типы
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.04.07 12:53
Оценка:
Здравствуйте, Black_delfin, Вы писали:

B_>Конструктор тоже не один и много раз перегружен нужен объект с конкретного класса


С какого именно?
Re[4]: Reflection и произвольные типы
От: Black_delfin  
Дата: 26.04.07 13:02
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Black_delfin, Вы писали:


B_>>Конструктор тоже не один и много раз перегружен нужен объект с конкретного класса


N>С какого именно?


class Rabota
и десятка других в которых он обявлялся
internal static PROP<Rabota и др> Info
кстаи мог и поменять значения при выполнении в нем не два int лежит
delfin :)
Re[3]: Reflection и произвольные типы
От: _FRED_ Черногория
Дата: 26.04.07 14:49
Оценка:
Здравствуйте, Black_delfin, Вы писали:

_FR>>
А>>>метод ()
А>>>   {....
А>>>    if (Irrrr != null){
А>>>                      //ВОПРОС КАК ПОЛУЧИТЬ ЗДЕСЬ ЗНАЧЕНИЕ  Save_param?????
А>>>                      Type tpp = Irrrr.GetType();
_FR>>                        object Save_param = tpp.GetField("Save_param").GetValue(Irrrr);
А>>>                     }
А>>>   }
_FR>>


B_>
B_>Irrrr.GetType() не тот тип 
B_>

B_>
B_>Вобще то Irrrr.FieldType
B_>но все равно, работать не будет

Не понял, почему?
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.