Создать элемент управления из строкового значения - PullRequest
0 голосов
/ 05 августа 2011

Я использую элементы управления DevExpress Components. Я хочу создать элементы управления из строки Значение

как "DevExpress.XtraEditors.TextEdit". Я знаю, что могу сделать это с отражением, как

var textBoxType = typeof(Control).Assembly.GetType("System.Windows.Forms.TextBox", true);
var textBox = Activator.CreateInstance(textBoxType);

Я хочу сделать это для написания небольшого кода. Но DevExpress имеет много пространства имен и классов. Могу ли я создать элемент управления из строки, если не дать A MainClass? (как мой пример кода typeof (Control)) если я не могу сделать, я должен использовать много, если

1 Ответ

2 голосов
/ 05 августа 2011

Вам необходимо знать, в какой сборке определен класс.

Например, все редакторы находятся в DevExpress.XtraEditors.vX.Y.dll или typeof(BaseEdit).Assembly.

Если вы не знаете, в какой сборке она определена, вы можете создать коллекцию сборок DevExpress (typeof(GridControl).Assembly, typeof(TreeList).Assembly, ...) и проходить по ним, пока asm.GetType(name) не вернет null.
Обратите внимание, что это будет очень медленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...