从后面的代码(我知道......)我试图创建一个实现特定接口的类型列表。这些类型位于网站项目app_code文件夹中。
网站项目动态编译成多个程序集,这意味着例如Assembly.GetCurrentlyExecutingAssembly()
和类似的调用,例如。GetType().Assembly
不包含我正在寻找的类型。除了使用大锤方法获取AppDomain.CurrentDomain.GetAssemblies()的核桃之外,还有一些方法只迭代网站项目中定义的类型吗?
当然,我可以将所有这些功能转移到一个单独的项目中,它的行为更具可预测性,但目前这个重构太过分了。
答案 0 :(得分:1)
从代码隐藏文件中,您应该能够执行以下代码行,仅枚举从app_code文件夹下的类编译的类型。
假设IViusalizationManager
是app_code文件夹下的一个类:
Type[] app_codeTypeList = typeof(IViusalizationManager).Assembly.GetTypes();