关于.NET的反射
发布网友
发布时间:2022-08-16 23:59
我来回答
共2个回答
热心网友
时间:2023-10-09 08:57
比如说插件技术,做插件,比如说,我有个文本编辑器,里面原来有的功能是改变字体大小就没别的功能了,但这个文本编辑器实现了支持插件的技术,也就是说里面可以用反射实现.
我要再添加一个功能就是改变字体颜色.做一个插件,放到指定的文件夹下,编辑器就会自动添加这个功能.
这个到底怎么实现呢? 如果你用using 引用程序就写死了.
怎么会写死了呢?比如说我的主程序就是个文本编辑器,我的原来的改变字体大小在另外的程序集,你就要引用
using 改变字体大小(假设这里的"改变字体大小是个程序集"),
但我要再加一个改变颜色的功能,他又是一个程序集,这样你就要改代码,变成
using 改变字体大小;
using 改变字体颜色;
要在程序里面写多 "using 改变字体颜色;" 这个代码;
但如果你用反射,就可以动态加载,不用写每个的 using .
比如说,把这个两个程序集放在指定文件夹下,你就可以在程序里面用反射去读取里面有什么程序集,然后实现里面的功能.
可能你有会问,反射怎么知道里面的程序集我要怎么用哪个方法和程序串联呢,这个就要会面向对象的"多态"的知识了.我在这里就是告诉你区别,可能你做不出上面的插件功能,但你知道区别我就算功德*了.
热心网友
时间:2023-10-09 08:57
这个真知道