日期:2014-05-20  浏览次数:21132 次

BuildManager.CodeAssemblies 返回的值为NULL
我在做一个网站,是用 Oxite 在做。因为需要,我改动比较大。

现在遇到了一个问题,很奇怪。

C# code

foreach (var assembly in BuildManager.CodeAssemblies)
                {
                    type = ((Assembly)assembly).GetExportedTypes().FirstOrDefault(t => t.FullName == module.Type);

                    if (type != null) break;
                }



这个时候出错了,我跟踪了一下,BuildManager.CodeAssemblies 返回的是 NULL。

不明白我什么地方出错了。请大家指教一下,感谢。

------解决方案--------------------
说明在App_Code 目录没有生成的任何的程序集,当然会出现这个异常。

我想你是把module放到单独的类库而不是写道App_Code中吧

如果是在Oxite中出现的该异常,应该是获取某个Module实例,找不到指定的类型

// 根据module的type属性在引用程序集中获取类型
Type type = Type.GetType(module.Type);
if (type == null)//设置断点
{//...}

在上一句中设置断点,看到底是查找哪个类型(module.Type)时出的问题

对应着去site项目下的bin目录,看到底有没有这个程序集。