摘要:
当开发插件的时候需要用到反射,在客户端动态加载遍历程序集,并调用每个程序集的方法。创建一个控制台应用程序,首先设计一个接口: public interface ISay { void SaySth(); }在控制台应用程序下创建Plugins文件夹,控制台的可执行文件... 阅读全文
摘要:
CLR总是知道托管堆上的对象是什么类型,这是CLR类型安全的前提。托管堆上的每个对象都有一个"类型对象指针",指向托管堆上Type对象的一个实例。我们总是可以通过System.Object的GetType实例方法,获取对象类型。而且,GetType是非虚方法,这样子类就不能重写该方法,子类就没有办法伪装成父类。 为什么需要类型安全呢?类型伪装是许多安全漏洞的根源。CLR类型安全保证了类型的安全... 阅读全文
摘要:
使用new操作符来创建对象,其背后到底发生了什么? 有一个父类Animal,Dog派生于Animal。 class Program { static void Main(string[] args) { Dog dog = new Dog(); Console.WriteLine("我能调用老祖宗Ob... 阅读全文