ASP.Net中的App_Code是否将新代码编译为辅助临时AppDomain?

时间:2009-06-23 16:34:22

标签: asp.net appdomain app-code

我正在尝试更好地理解App-Code文件夹的操作方式,特别是我很好奇App-Code文件夹中的新类如何包含在当前AppDomain中的新对象。是否使用与使用CodeDom编译新对象时相同的方式创建了第二个临时AppDomain?

在许多方面,将新类/对象移动到Web应用程序中的能力非常引人注目。 Rob Connery的MVC Storefront是一个很好的例子。如果您已经使用App-code文件夹部署新功能,是否需要考虑任何权衡或陷阱?

更新:

我找到了article in CoDe Magazine这个有趣的段落:

  

您的应用程序特定代码可以使用   内联ASPX页面或控件,它   可以进入CodeBeside部分   上课,或者你可以完全创造   APP_CODE中的自治类   夹。 APP_CODE文件夹是   ASP.NET 2.0中的特殊文件夹   项目和任何非页面或   您的控件相关源代码   Web项目必须进入此文件夹。   ASP.NET处理APP_CODE的内容   像一个图书馆项目和编译   将内容分成单独的程序集。   然后引用该程序集   所有页面或目录级别   ASP.NET创建的程序集   您的ASPX / ASCX页面使用任何一个   APP_CODE中定义的类。

我的问题仍然存在 - 是否是第二个支持此库的AppDomain,如果是这样,对性能的影响最小?

1 个答案:

答案 0 :(得分:2)

我不知道细节,但它肯定会在不同的动态组件中。一个类不能在另一个AppDomain中。只有一个类的实例可以在另一个AppDomain中,然后从另一个AppDomain访问真的很麻烦(只能通过远程处理)