Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как проверить существование типа? / 11 сообщений из 11, страница 1 из 1
02.05.2013, 17:33
    #38246713
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
Доброе время суток.

Есть несколько классов. Перед созданием объекта на основе этого класса надо проверить а доступна ли сама сборка с определением этого класса и есть ли внутри неё определение класса с таким именем. (Код создания объекта формируется в строке и запускается через свой Evaluate метод).

Так вот, есть строка с названием класса, надо проверить а возможноли создать объект на основе этого класса или определение класса не доступно (напр. класс ещё просто не написан).
Как сие проще реализовать?

Спасибо.
...
Рейтинг: 0 / 0
02.05.2013, 17:40
    #38246717
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
Mikhail Tchervonenko, проще всего обойтись без проверок. Пробуешь выполнить свой динамический код и ловишь исключения.
...
Рейтинг: 0 / 0
02.05.2013, 17:40
    #38246718
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
bazile,

так и зделано,
но хотелось бы чего то более осмысленного
...
Рейтинг: 0 / 0
02.05.2013, 17:48
    #38246723
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
Mikhail Tchervonenko, что именно ты подразумеваешь под "более осмысленным"?
...
Рейтинг: 0 / 0
02.05.2013, 17:56
    #38246729
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
bazile,

Ловить исключения считается плохим стилем, насколько мне известно.
В делфях я знал как проверить наличие определения класса в юните а c# вот гуглю и доку смотрю но пока не нашел.
Но думаю есть наверняка.
...
Рейтинг: 0 / 0
02.05.2013, 17:58
    #38246731
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
Mikhail Tchervonenko,

Если надо найти какой то класс в сборке , обычно используют рефлексию. перебирают все имена, пока не будет совпадения.
Пробовали?
...
Рейтинг: 0 / 0
02.05.2013, 18:01
    #38246734
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
beg-in-er,

Там сборок многовато да и заранее не известны их имена (тоже цепляются из базы и динамически).
Сложновато получается.
...
Рейтинг: 0 / 0
02.05.2013, 18:05
    #38246736
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
Mikhail Tchervonenkobeg-in-er,

Там сборок многовато да и заранее не известны их имена (тоже цепляются из базы и динамически).
Сложновато получается.
да не должно быть ничего сложного.

1. прилетают имена сборок.
2. Тащим по именам эти сборки на рефлексию
3. вытряхиваем их на наличие того или иного класса.
4. ....
5.профит!
...
Рейтинг: 0 / 0
02.05.2013, 18:06
    #38246737
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
Mikhail TchervonenkoЛовить исключения считается плохим стилем, насколько мне известно.
Глупость. Ты выполняешь код который может сгенерировать исключение, ожидаешь их и готов их обработать. Ничего плохого здесь нет.

Mikhail TchervonenkoВ делфях я знал как проверить наличие определения класса в юните а c# вот гуглю и доку смотрю но пока не нашел.
В .NET это делается через механизм Reflection, но в данной ситуации он тебе не нужен т.к. не несет пользы.
...
Рейтинг: 0 / 0
02.05.2013, 18:14
    #38246741
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
bazile,

ок, всем спасибо
...
Рейтинг: 0 / 0
03.05.2013, 18:24
    #38247316
SerP1983
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить существование типа?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как проверить существование типа? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]