Re: Получить свойство свойства типа созданного динамически
От: Sinix  
Дата: 29.11.10 11:16
Оценка: 24 (2)
Здравствуйте, Аноним, Вы писали:

А>Теперь своему Динамическому_Типу (созданному в Emit) хочу добавить свойство которое будет возвращать _Value.Value. Как это сделать?

1. Написать код на шарпе.
2. Открыть в рефлекторе с плагином Reflection.Emit language
Получить свойство свойства типа созданного динамически
От: Аноним  
Дата: 29.11.10 10:44
Оценка:
class Обычный_Тип
{
  object m_Value;
  public object Value
  {
    get
    {
      return m_Value;
    }
  }
}

class Динамический_Тип
{
  public Обычный_Тип _Value;
}


Теперь своему Динамическому_Типу (созданному в Emit) хочу добавить свойство которое будет возвращать _Value.Value. Как это сделать?
Re[2]: Получить свойство свойства типа созданного динамическ
От: Аноним  
Дата: 29.11.10 11:33
Оценка:
Здравствуйте, Sinix, Вы писали:

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


А>>Теперь своему Динамическому_Типу (созданному в Emit) хочу добавить свойство которое будет возвращать _Value.Value. Как это сделать?

S>1. Написать код на шарпе.
S>2. Открыть в рефлекторе с плагином Reflection.Emit language

Как установить этот плагин?
Re[3]: Получить свойство свойства типа созданного динамическ
От: Lloyd Россия  
Дата: 29.11.10 11:40
Оценка:
Здравствуйте, Аноним, Вы писали:

S>>1. Написать код на шарпе.

S>>2. Открыть в рефлекторе с плагином Reflection.Emit language

А>Как установить этот плагин?


Доставляет. Мало того, что даже спасибо не сказал, так не сделал даже минимальной попытки найти самостоятельно ответ.
Держи, лентяй:

This site lists add-ins for .NET Reflector. After downloading one of the add-ins copy the files to the same directory as 'Reflector.exe' and load them via the 'Add-Ins' command under the 'View' menu.

Re[3]: Получить свойство свойства типа созданного динамическ
От: Sinix  
Дата: 29.11.10 11:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как установить этот плагин?

Скопировать в папку с рефлектором, запустить его, View — Add-ins — Add (по памяти). Возможно, перезапустить рефлектор. Гугль нашёл инструкцию вот тут: http://www.simple-talk.com/dotnet/.net-tools/using-.net-reflector-add-ins/
Re[4]: Получить свойство свойства типа созданного динамическ
От: Аноним  
Дата: 29.11.10 11:48
Оценка:
Здравствуйте, Sinix, Вы писали:

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


А>>Как установить этот плагин?

S>Скопировать в папку с рефлектором, запустить его, View — Add-ins — Add (по памяти). Возможно, перезапустить рефлектор. Гугль нашёл инструкцию вот тут: http://www.simple-talk.com/dotnet/.net-tools/using-.net-reflector-add-ins/

Спасибо
Re[4]: Получить свойство свойства типа созданного динамическ
От: Аноним  
Дата: 29.11.10 11:54
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Доставляет. Мало того, что даже спасибо не сказал, так не сделал даже минимальной попытки найти самостоятельно ответ.

L>Держи, лентяй:
L>

L>This site lists add-ins for .NET Reflector. After downloading one of the add-ins copy the files to the same directory as 'Reflector.exe' and load them via the 'Add-Ins' command under the 'View' menu.


Спасибо, я просто не знал что рефлектор это отдельная программа, а не часть Visual Studio. И не мог найти как подключить указанный плагин в VS
Re[2]: Получить свойство свойства типа созданного динамическ
От: Аноним  
Дата: 29.11.10 13:49
Оценка:
Здравствуйте, Sinix, Вы писали:

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


А>>Теперь своему Динамическому_Типу (созданному в Emit) хочу добавить свойство которое будет возвращать _Value.Value. Как это сделать?

S>1. Написать код на шарпе.
S>2. Открыть в рефлекторе с плагином Reflection.Emit language

Снова нужна помощь

Рефлектор даёт

.method public hidebysig specialname instance object get_Str() cil managed
{
    .maxstack 8
    L_0000: ldarg.0 
    L_0001: ldfld class WCF_сервис.Nullble WpfApplication1.Дина::m_Stat
    L_0006: callvirt instance object WCF_сервис.Nullble::get_Value()
    L_000b: ret 
}

как переводятся выделенные строки в опкоды?

Я попробовал так:

numberGetIL.Emit(OpCodes.Ldfld, "class WCF_сервис.Nullble WpfApplication1.Дина::m_Stat");
numberGetIL.Emit(OpCodes.Callvirt, "instance object WCF_сервис.Nullble::get_Value()");


Да только не работает
Re[3]: Получить свойство свойства типа созданного динамическ
От: Sinix  
Дата: 29.11.10 13:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>как переводятся выделенные строки в опкоды?


В панели инструментов в комбобоксе выбора языков надо выбрать Reflection.Emit. Если его там нет — вы не установили add-in. Рефлектор сам сгенерит нужный код.
Re[3]: Получить свойство свойства типа созданного динамическ
От: Аноним  
Дата: 29.11.10 14:14
Оценка:
Здравствуйте, Аноним, Вы писали:

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


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


А>>>Теперь своему Динамическому_Типу (созданному в Emit) хочу добавить свойство которое будет возвращать _Value.Value. Как это сделать?

S>>1. Написать код на шарпе.
S>>2. Открыть в рефлекторе с плагином Reflection.Emit language

А>Снова нужна помощь


А>Рефлектор даёт


А>
А>.method public hidebysig specialname instance object get_Str() cil managed
А>{
А>    .maxstack 8
А>    L_0000: ldarg.0 
А>    L_0001: ldfld class WCF_сервис.Nullble WpfApplication1.Дина::m_Stat
А>    L_0006: callvirt instance object WCF_сервис.Nullble::get_Value()
А>    L_000b: ret 
А>}
А>

А>как переводятся выделенные строки в опкоды?

А>Я попробовал так:


А>
А>numberGetIL.Emit(OpCodes.Ldfld, "class WCF_сервис.Nullble WpfApplication1.Дина::m_Stat");
А>numberGetIL.Emit(OpCodes.Callvirt, "instance object WCF_сервис.Nullble::get_Value()");
А>


А>Да только не работает


Если кто-нибудь знает как перевести напишите, плиз.
Пока я пытаюсь поженить рефлектор с плагином (Failed to load bla-bla-bla plugin).
Re[4]: Получить свойство свойства типа созданного динамическ
От: Аноним  
Дата: 29.11.10 14:31
Оценка:
А>Если кто-нибудь знает как перевести напишите, плиз.
А>Пока я пытаюсь поженить рефлектор с плагином (Failed to load bla-bla-bla plugin).

Всё понятно. Там на странице скачивания была прорва ссылок и я незадумывась скачал по той которая была особняком — Graph.Reflector. И понятно что другие дллки грузиться отказывались.


Счас скачал правильную. Заработало. Всем спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.