比如说:我现在开发了一个网站。
开发环境是vs2005 + sqlserver现在新建立一个default.aspx 页。
在default.aspx.cs 中, 我发现了这样的名称空间的引用:using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;这个页引用了这么多的类,对应的dll文件在哪里进行了配置  ?我现在想自己引用另外一个名称空间:
System.Windows.Forms
我就需要自己在网站中添加引用,然后出现了一个web.config的文件, 
System.Windows.Forms 在配置文件中被声明了。我想问的是:using System.Web;在那里被声明了?
网站是如何找到它的?
先谢谢大家了。

解决方案 »

  1.   

    using不是引用,而是导入命名空间。引用是添加系统的dll或者COM组件,这个才叫做引用。引用的 System.Web 下的这些空间,对应的 dll 都是 .net 框架自带的,通常是 System.web.dll。
      

  2.   

    引用的 System.Web 下的这些空间,对应的 dll 都是 .net 框架自带的,通常是 System.web.dll。你这里说的:
    对应的 dll 都是 .net 框架自带的
    那么System.Windows.Forms 
    不是 .net 框架自带的么 ?为什么System.Web不需要手动添加, 而 System.Windows.Forms 却需要手动添加呢?
      

  3.   

    程序集分为全局程序集和私有程序集,.NET中内置的都是全局程序集,都放在全局程序集缓存(GAC)中了。
    C:\WINDOWS\assembly就是GAC的目录,其中的每一个条目就是一个程序集。
      

  4.   

    在每个程序集中都会有一个元数据表,里面包括程序集的一些信息,当然也包括这个程序集引用了那些程序集,如果是是全局程序集,那么使用的就是强名称,在程序运行的时候CLR会定位到C:\WINDOWS\assembly中加载这个程序集,
    如果是私有程序集,CLR最先会在当前程序集目录下搜索DLL,这就是为什么我们在引用一个DLL时,它会被自动复制到程序集当前目录的原因。写得很乱,在《框架设计》这本书里面第二章有很详细的讲解。
      

  5.   

    你能具体给我解释一下:
    (1)System.Web 是全局程序集, 对不 ?因为我们没有手动的引用它。(2)System.Windows.Forms 是全局的还是私有的 ?我在一个网站的应用程序中如果要使用它就需要手动的添加它?
      

  6.   

    System.Windows.Forms也是全局程序集,你可以在C:\WINDOWS\assembly里面找到它。
    一般你自己写一个类生成DLL,再添加引用,就是私有程序集了,你添加引用后系统会自动将DLL文件复制到的程序的当前目录下。
      

  7.   

    --你添加引用后系统会自动将DLL文件复制到的程序的当前目录下但是我在 程序的当前目录下  没有发现dll文件呀?
      

  8.   

    我跟你说得是。你自己写一个类,然后生成DLL,通过浏览的方式引入程序集,在Bin\Debug下会有一个程序集dll文件
      

  9.   

    你在WebForm下引用WinForm兄弟你实在太有才了
      

  10.   


    1、这是框架默认调用的,因为你现在做的是WebForm,所以Frame必然调用这个程序集
    2、首先我不明白,WebForm下如何应用WinForm,其次,如果你要用它的话,必须要自己声明using,再:如果你创建的是Winform的话,那默认调用的就是System.Windows,而不是Web