Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Как получить интерфейс по его имени |
Автор: Brausman 15.3.2011, 10:36 |
Здравствуйте, до сей поры программировал только в Delphi, ну и давно реализовывал сложную математику на С++. На работе пришлось столкнуться со SCADA-системой в которой реализация идет через C#. Только начал его изучение, но на работе, как вы понимаете, результат нужен сейчас. Вот в чем вопрос, имеется имя интерфейса в SCADA(например IPresentation.Name), как зная только это имя получить его интерфейс(топорно выражаясь получить доступ к методам и свойствам интерфейса IPresentation), средствами языка C#. |
Автор: Brausman 15.3.2011, 11:09 |
По теме у меня нет переменной объекта, чтобы привести его,например так : ((IPresentation)SCADAObj).Name; имеется только имя объекта(интерфейса), и я не знаю, как через имя(интерфейса,объекта), получить объект(интерфейс). В этом вся и трабла(. |
Автор: Brausman 15.3.2011, 12:22 |
Поясняю ниже из кода имеется только имя(выделенное) : ((IPresentation)SCADAObj).Name; Как мне получить только зная имя SCADAObj.Name или ((IPresentation)SCADAObj).Name, получить переменную содержащую класс - SCADAObj или интерфейс - IPresentation. |
Автор: mihryak 15.3.2011, 12:44 |
всё равно не понимаю у тебя есть откуда-то взявшаяся строка "Name", так? и ты хочешь получить переменную с типом Type из неё, зная при этом, что это будет SCADAObj или IPresentation? почему бы тогда не вызвать сразу typeof(IPresentation)? если же ты под подразумеваешь не Type, а экземпляр этого типа, то никак разумеется, ведь этих инстансов ещё может не быть создано ни одного, или их тысячи |
Автор: Fitc 15.3.2011, 21:52 | ||||||
Тебе нужен экземпляр класса в котором инициализирован SCADAObj. Если SCADAObj - поле класса, то делай так:
Если SCADAObj - свойство класса, то делай так:
|