由CreateInstance所想到的......

来源:互联网 发布:土地建设数据库 编辑:程序博客网 时间:2024/06/10 17:20

//从程序集创建对象实例
string path = System.Configuration.ConfigurationSettings.AppSettings["DAL"];//数据层的程序集名称
return (IDbObject)Assembly.Load(path).CreateInstance(path+".DbObject");

我最初以为CreatInstance只是创建一个引用,而不是实例...。其实这是创建实例的一种方法。

这句话还涉及到的一个知识点就是:C#中显/隐式实现接口

原文:http://www.cnblogs.com/dnawo/archive/2007/12/27/1016243.html

Java中创建对象的4中方法:

1、用new语句创建对象,这是最常用的创建对象的方式。

2、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。

3、调用对象的clone()方法。

4、运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。

例子:http://blog.sina.com.cn/s/blog_4b81125f01000723.html

关于反射:
1、可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型
2、应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。
3、反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。

 反射在实际中应用的例子:

我不必知道类的所有属性及方法,但是我可以将我需要得到或者改变的东西带入这个类中去创建一个实例。

比如在:页面有string name、int age、bool sex。java中提交页面的时候将以上用map封装成:类型&名字 这样的对象。我们只需要知道有一个类叫做proInfo,这个类里面可能有name、age、sex等等的处理信息。我们可以将UI上的名字与从这个类中取得的名字比较,然后进行get与set之类的操作。

我们只知道类名,但是我们想知道这个类里面的方法是不是有我们想要的,我们就可以动态的创建对象来实现。

另外,IDE编程工具用了很多反射。典型的就是:你在类名称后面输入一个" . ",会有相应的属性和方法显示。

原创粉丝点击