Конференция ".Net" » рефлексия [D2005, WinXP]
 
  • cherrex © (14.08.05 10:48) [0]
    Что такое рефлексия, я понимаю но очень смутно. Хотелось бы узнать по подробния.
  • oslep (14.08.05 11:08) [1]
    Рефлексия - это мощный вариант RTTI (TypInfo.pas) для .NET, и многое другое, включая способность динамически создавать код и сборки (exe, dll) на промежуточном языке MSIL, который компилируется процессором NET.

    http://pda.delphimaster.net/?id=1123439512&n=14

    На этом посту был?
  • cherrex © (14.08.05 12:35) [2]
    Допустим есть форма (TForm), ее записываем в dll, а потом вызываем ее из другого приложения. Это возможно сделать с помошью рефлексии?
  • oslep (14.08.05 13:33) [3]

    > cherrex ©   (14.08.05 12:35) [2]

    Можно
  • cherrex © (14.08.05 14:03) [4]
    А если это просто EXE (VCL APLICATION), я могу могу с ней работать как с библиотекой(dll).
  • Priest © (15.08.05 09:24) [5]
    Можешь....
  • Суслик © (15.08.05 09:53) [6]

    > Что такое рефлексия, я понимаю но очень смутно. Хотелось
    > бы узнать по подробния.


    ну это вроде published в delphi.
    Что published, о том можно получить информацию во время выполнения.
    Не знаю как это сделано в net, но в java можно получить информацию почти обо всем - классы, состав их методов, их параметры и пр. В принципе может использоваться для сериализации.

    Вообще "рефлексия" - это как бы размышления, информация о себе самом. Если не ошибаюсь, это понятие имеет широкое распространение в философии.

    В применимости к IT - это информация о информации, метаинформация.

    Думаю, что в net примерно также.
  • Игорь Шевченко © (15.08.05 11:43) [7]
  • Суслик © (15.08.05 12:51) [8]

    > [7] Игорь Шевченко ©   (15.08.05 11:43)
    > http://rsdn.ru/article/dotnet/refl.xml

    хорошая статья.
    спасибо.
  • DiamondShark © (15.08.05 15:39) [9]
    Ожидаем выхода нового поколения полиморфных стелс-вирусов, написанных под CLR.

    ;)
  • cherrex © (15.08.05 17:48) [10]
    Скажите как мне запустить форму из dll (если можно пример).
    1)создал dll.
    2)добавил через NEW VCL Form.

    Как ее запустить с помощью рефлексии?
  • DiamondShark © (16.08.05 12:26) [11]

    > Как ее запустить с помощью рефлексии?

    Примерно так:


    private void button1_Click(object sender, System.EventArgs e)
    {
       Assembly asm = Assembly.LoadFrom(@"D:\Projects\dotNet\Solution1\ClassLibrary1\bin\Debug\ClassLibrary1.dll");
       Type[] types = asm.GetTypes();
       foreach (Type t in types)
           if (t.IsSubclassOf(typeof(Form)))
           {
               Form f = (Form)Activator.CreateInstance(t);
               f.Show();
               break;
           }

    }

 
Конференция ".Net" » рефлексия [D2005, WinXP]
Есть новые Нет новых   [134428   +41][b:0][p:0.001]