Как создать экземпляр типа, определенного в проекте веб-сайта (App_Code), из другой библиотеки - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь создать экземпляр типа, определенного в Web Site Project.Имя типа является настраиваемым, поэтому оно известно, но для имени сборки невозможно указать имя в момент конфигурации, поскольку проект веб-сайта компилируется ASP .Net.

var typeName = ConfigurationManager.AppSettings["typeName"];
var assemblyName = '.. get the assembly name ..';

var instance = Activator.CreateInstance(assemblyName, typeName);
return (IUserCredentials)instance.Unwrap();

Любойпростой способ использовать эту CreateInstance перегрузку или я буду искать по всем загруженным типам и найти его по имени?

Этот код используется в другой библиотеке, на которую есть ссылка в проекте веб-сайта.

Ответы [ 3 ]

3 голосов
/ 21 марта 2012

App_Code - это имя, назначенное сборке, которая содержит типы, находящиеся в типах каталогов App_Code, поэтому вам следует:

string assemblyName = "App_Code";
1 голос
/ 21 марта 2012

Как насчет получения сборки из типа, который, как вы знаете, существует в веб-приложении, и использования этого:

typeof(MyWellKnownType).Assembly
0 голосов
/ 21 марта 2012

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

...