六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

c# 通过反射 实例化类

[复制链接]

升级  22%

23

主题

23

主题

23

主题

秀才

Rank: 2

积分
83
 楼主| 发表于 2013-2-4 22:15:16 | 显示全部楼层 |阅读模式
1. 用Type
   在 website 下
string UserDaoPath = System.Configuration.ConfigurationSettings.AppSettings["UserDao"];UserDao userDao = (UserDao)Type.GetType(UserDaoPath).            GetConstructor(System.Type.EmptyTypes).Invoke(null );  
  如果构造方法有参数的话,这样。
//定义参数类型数组Type[] tps = new Type[2];tps[0] = typeof(int);tps[1] = typeof(string);//定义参数数组object[] obj = new object[2];obj[0] = (object)100;obj[1] = (object)"Param Example";string UserDaoPath = System.Configuration.ConfigurationSettings.AppSettings["UserDao"];UserDao userDao = (UserDao)Type.GetType(UserDaoPath).            GetConstructor(tps).Invoke(obj );  
 
<appSettings >    <add key="UserDao" value="UserDao"></add>   </appSettings> 2. 用Assembly
   在 website 下  这个是导入一个 程序集 然后在程序集里再 实例化类, 我这里其实就是实例化一个类。
 
string UserServicePath = System.Configuration.ConfigurationSettings                                        .AppSettings["UserService"];UserService userService = (IUserService)Assembly.Load(UserServicePath).            CreateInstance("UserService"); 
<appSettings >    <add key="UserService" value="App_Code.Service.UserService"></add></appSettings>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表