解密aspx与aspx.cs的关系

2020-03-24 16:12:49 浏览数 (1)

1、首先说明一下部分类这个概念

2、建类的注意事项;

3、一个命名空间下边是不能有两个名字相同的类:但是你将其中一个添加在这个空间下的不同文件夹下,又是可以的~!!只是在用类的时候,是要区分用哪个类了!

4、总结::在同一个命名空间下的部分类,在编译的过程中,会将两连个部分类合并。。

5、说明一下关系

6、接下来,首先,下面做一个多态类的反射练习,有助于理解本结课内容的。

创建一个父类:

创建一个子类:child 继承 父类 parent

返回主程序:

运行结果:

可以看出来,,第一个是子类的名字,第二个是子类的父类的名字;第三个是父类 所在的程序集路径信息;

可以在反编译工具中进行查看:(在IL中输入地址就行了)

下面接着分析asp这个类.可以看出来其中的奥秘,aspx其实就是做了一个html的拼接的处理~!!

1)为什么可以再aspx中页面中写C#代码呢?其实本段代码最后编译生成到一个类中,接着for()循环语句也是被生成到了这个类中,看图:

查看如下:

接着仔细的分析后发现:

aspx中写的“=”被编译成了response.write();了;

接着分析aspx这个文件:实现了IHttpHandler这个接口,就可以看做是实现了HttpHander这个接口,接着就理解了,aspx只不过是特殊的一般处理程序;

总结:

1、部分类

2、aspx文件会最终编译生成了 一个类,在源代码中是看不到的,在反编译工具中是可以看到的~!!

3、在aspx文件中写的控件,包括自己写的html代码,都可以看做是做了一个拼接字符串的处理~!!

4、在反编译工具中,aspx文件会最终编译生成了 一个类,继承了aspx.cs这个类(ASPTest1),《简单理解就是说asp这个编译生成类,是aspx.cs这个类的子类》,,,,所以aspx.cs这个类中修饰符至少是protected级别的,这样子类aspx才可以访问父类中的成员~!!

3、反编译中的_w.Write() 中的_w相当于response

0 人点赞