Я пишу веб-фреймворк и реализую некоторые пользовательские атрибуты. Я хочу получить все эти атрибуты, чтобы я мог что-то с ними сделать. Я предполагаю, что для этого мне сначала нужно получить сборку, а затем я могу получить все типы (классы), определенные в ней, и оттуда я могу получить все ее методы, а затем, наконец, атрибуты.
Итак, я смотрю на Assembly.Get___Assembly
. Я хочу использовать Calling, Entry или Executing? Эта веб-структура будет скомпилирована в свою собственную сборку DLL, и тогда люди, использующие инфраструктуру, должны включить эту библиотеку DLL и реализовать свои собственные классы, используя атрибуты из сборки веб-платформы.
Итак ... Я думал, что выполнение даст мне библиотеку веб-фреймворка, потому что именно там находится код обработки атрибутов, но не там, где используются атрибуты, так что это не то, что я хочу.
EntryAssembly звучит многообещающе ... но это работает через IIS .... так что бы он вернул?
И CallingAssembly просто звучит неправильно ... так что я хочу?
В настоящее время я еще не разделил веб-фреймворк на его собственную сборку, поэтому я как бы собираю веб-приложение и веб-фреймворк одновременно в одной сборке.
Так что ExecutingAssembly
работает (на данный момент), но я боюсь, что когда я отделю его, это даст мне неправильный.
CallingAssembly
дает System.Web
, а EntryAssembly
равно нулю по любой причине.