24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
1
.NET 4.x

Создание экземпляра класса из текстовой строки

09.04.2018, 20:37. Показов 1060. Ответов 3

Author24 — интернет-сервис помощи студентам
Доброго времени суток, появилась проблема, подскажите, как решается. Допустим есть строка, которая принимает значение какого-то, неизвестного реализованного класса (ValueRole). Нашел на StackOverflow два метода, как создать экземпляры, но оба метода возвращают сгенерированный объект, обернутый в object, который не дает обратиться к самому объекту. Как обратиться теперь к полученному объекту?
C#
1
2
3
4
5
6
7
8
9
class 
 
 
// Метод 1
var test = Assembly.GetExecutingAssembly().CreateInstance(ValueRole);
 
// Метод 2 
Type tmp = Type.GetType(ValueRole);
object test1 = Activator.CreateInstance(tmp);
Добавлено через 2 минуты
Думаю, что можно как-то привести к типу, но как, если я не знаю, какой точно тип внутри object
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2018, 20:37
Ответы с готовыми решениями:

Создание экземпляра класса на основании введенной с клавиатуры строки
у меня есть 4 класса BaseFigure(абстрактный класс его наследуют все остальные), Line, Rectangle,...

Создание экземпляра класса-наследника для переменной с типом базового класса
Подскажите чайнику как создается экземпляр класса BC BaseClass BC = new DerivedClass(); ...

Создание экземпляра класса
Народ, можете пожалуйста доходчиво объяснить в чем разница. есть, например, класс class MyClass...

Создание экземпляра класса
Как написать класс class Class1 Class1(int x1,int x2) { ........ } ...

3
Эксперт .NET
5531 / 4296 / 1216
Регистрация: 12.10.2013
Сообщений: 12,329
Записей в блоге: 2
09.04.2018, 21:02 2
Цитата Сообщение от ЗеХель Посмотреть сообщение
можно как-то привести к типу
Можно. Но тогда ваш код должен точно знать, что это за тип.
Иначе-только рефлексия, то есть работа полностью при знании только строковых значений типа и его методов.
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
09.04.2018, 21:06  [ТС] 3
insite2012, Если речь про наличие реализации класса, то да, я точно уверен, что она есть. А можно, пожалуйста, пример, как привести к типу.
0
Эксперт .NET
5531 / 4296 / 1216
Регистрация: 12.10.2013
Сообщений: 12,329
Записей в блоге: 2
09.04.2018, 21:15 4
Цитата Сообщение от ЗеХель Посмотреть сообщение
Если речь про наличие реализации класса, то да, я точно уверен, что она есть
Нет, речь не про то.
Цитата Сообщение от ЗеХель Посмотреть сообщение
можно, пожалуйста, пример, как привести к типу.
Да как обычно, используя явное приведение типов. Но опять же, ваш код должен знать этот тип, а тогда смысл создания объекта таким способом теряется. Тогда проще его просто создать, чем извращаться.
Либо, как я сказал ранее.
Цитата Сообщение от insite2012 Посмотреть сообщение
только рефлексия, то есть работа полностью при знании только строковых значений типа и его методов.
0
09.04.2018, 21:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2018, 21:15
Помогаю со студенческими работами здесь

Создание нового экземпляра дочернего класса из экземпляра базового
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... ...

Создание экземпляра класса, разрушение экземпляра класса
Не могу найти информацию про разрущение экземпляра класса. Объясните пожалуйста, что это?

Создание экземпляра класса, имя класса находиться в строковой переменной
Подскажите люди добрые, как можно выйти из такой ситуации, вот допустим имеются классы class new1{...

Явное создание экземпляра класса и явная специализация шаблона класса
Всем добрый день! Не могу разобраться - эти две технологии дают один и тот же результат? В каких...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru