Следующий код не компилируется в ОС Windows 10 Универсальное приложение, но делает в приложение .Net консоли (как с помощью Reflection):Использование CreateInstance в Windows 10 Универсальные приложения
string objType = "MyObjType";
var a = Assembly.GetExecutingAssembly();
var newObj = a.CreateInstance(objType);
Казалось бы, универсальный Windows-приложения не содержат метода Assembly.GetExecutingAssembly()
; и объекты Ассамблеи, похоже, не содержат CreateInstance
.
Activator.CreateInstance имеет 16 перегрузок в .Net и только 3 в приложении A Win 10. Я ссылаюсь на расширения на рабочем столе.
Этот тип конструкции по-прежнему возможен в Windows 10, и если да, то как? Я пытаюсь создать экземпляр класса из строки, представляющей этот класс.
Похоже, вы хотите получить тип, например. с 'Assembly.GetType (...)', а затем вызовите 'Activator.CreateInstance (Type)'. Какой сборкой является тип? –
Тип находится в текущей сборке (почему я пытался вызвать GetExecutingAssembly), поэтому я мог бы это сделать, если бы смог получить исполняющую сборку. –
Ну вы не можете использовать 'typeof (Foo) .Assembly' где' Foo' - это тип, в котором вы пишете код? –