Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вызов класса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Не подскажете как можно обратиться к классу программно, т.е. когда его имя содержится в переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 06:39 |
|
||
|
Вызов класса
|
|||
|---|---|---|---|
|
#18+
Type.GetType() А потом можно Reflection'ом создать экземпляр. Все это должно получиться. using System; using System.Reflection; class TypeObjectFromNameApp { public static void Main(string[] args) { Type t = Type.GetType("System.Int32"); Console.WriteLine(t.Name); } } А дальше примерно наким мокаром: using System; using System.Reflection; using System.10; class LateBindingApp { public static void Main() < string[] fileNames = Directory.GetFiles (Environment.CurrentDirectory, CommProtocol.DLLMask); foreach(string fileName in fileNames) { Console.WriteLine("Loading DLL '{0}'", fileName); Assembly a = Assembly.LoadFrom(fileName); Type[] types = a.GetTypes(); foreach(Type t in types) { if (t.IsSubclassOf(typeof(CommProtocol))) { object о = Activator.Createlnstance(t); Methodlnfo mi = t.GetMethod("DisplayName"); Console.Write("t"); mi.Invoke(o, null); } else { Console.WriteLine("tThis DLL does not have " + "CommProtocol-derived class defined"); } } > > } ---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 08:54 |
|
||
|
Вызов класса
|
|||
|---|---|---|---|
|
#18+
большое спасибо Type.GetType() А потом можно Reflection'ом создать экземпляр. Все это должно получиться. using System; using System.Reflection; class TypeObjectFromNameApp { public static void Main(string[] args) { Type t = Type.GetType("System.Int32"); Console.WriteLine(t.Name); } } А дальше примерно наким мокаром: using System; using System.Reflection; using System.10; class LateBindingApp { public static void Main() < string[] fileNames = Directory.GetFiles (Environment.CurrentDirectory, CommProtocol.DLLMask); foreach(string fileName in fileNames) { Console.WriteLine("Loading DLL '{0}'", fileName); Assembly a = Assembly.LoadFrom(fileName); Type[] types = a.GetTypes(); foreach(Type t in types) { if (t.IsSubclassOf(typeof(CommProtocol))) { object о = Activator.Createlnstance(t); Methodlnfo mi = t.GetMethod("DisplayName"); Console.Write("t"); mi.Invoke(o, null); } else { Console.WriteLine("tThis DLL does not have " + "CommProtocol-derived class defined"); } } > > } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2006, 02:29 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33831630&tid=1392010]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 362ms |

| 0 / 0 |
