`
xufei0110
  • 浏览: 109198 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

c# 通过反射 实例化类

    博客分类:
  • .net
阅读更多

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>
 
分享到:
评论

相关推荐

    详解C# 利用反射根据类名创建类的实例对象

    “反射”其实就是利用程序集的元数据信息。 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名... // 创建类的实例 2、若要反射当前项目中的类(即当前项目已经引用它了)可以为: Assembly assembly

    C#泛型、反射实例、自动生成sql语句

    C#泛型、反射实例,分层,自动生成sql语句

    C# 反射,操作权限,动态实例化类

    C# 反射,操作权限(新增,删除等),动态实例化类,一个C/S系统,每个模块上面都有很多操作按钮,你不可能每一窗体内在设权限的时候都用btn.enable=false/true,这样太烦了,可以作一个控件,这样统一按钮名称,然后...

    C#,利用反射动态创建对象

    C#,利用反射动态创建对象 C#,利用反射动态创建对象 C#,利用反射动态创建对象 C#,利用反射动态创建对象

    c# 基于反射、自定义特性、Web Services、xml序列化的应用实例 !

    c# 基于反射、自定义特性、Web Services、xml序列化的应用实例 !

    C#反射简单入门实例

    创建一个Assembly,反射构造函数,方法,属性信息,动态实例化类对象,调用类方法。对想简单了解反射概念的朋友有一定的帮助。

    C#浅拷贝(MemberwiseClone等多种方法)与深拷贝(反射、多种反序列化)实例

    (抱歉,我无法修改下载积分,本想着免积分的)C#浅拷贝(MemberwiseClone等多种方法)与深拷贝(反射、多种反序列化)实例

    C#__序列化与反射

    精讲C#序列化/反序列化保持和恢复对象状态以及反射高级技术实例。

    C#中使用反射获取结构体实例及思路

    }之前我一直没有发现原来结构是不可以这样实例化的 换种方式,似乎结构体使用反射无法得到其构造函数ConstructorInfo对象 类中有一个隐式的构造函数,而结构没有构造函数 我甚至尝试查找非public构造函数 依然没有 ...

    C#中使用反射遍历一个对象属性及值的小技巧

    对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): 代码如下: Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach ...

    C#反射应用实例

    通过定义接口,反射实例化配置的节点的值 配置App.config: 代码如下:&lt;?xml version=”1.0″ encoding=”utf-8″ ?&gt;    ”DAL” value=”FactoryInterface.Oracle”/&gt;   通过System.Configuration....

    C#泛型和反射实例解析

    C#中的泛型和反射经常是一起工作的,因此这里就一次性的加以介绍了。 由于c#是强类型语言,一般来说函数的返回类型和参数的类型都是一早写好的,这也就造成了很多时候不像js那样方便使用,不够灵话。 因此就有了这个...

    细细品味C#(抽象接口委托反射).pdf

     抽象类不能实例化。  抽象类可以包含抽象方法和抽象访问器。  不能用 sealed 修饰符修改抽象类,这意味着该类不能被继承。  从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。 ...

    c#list添加数据

    为仅实例化的list对象添加数据,list&lt;&gt;.count==0的时候,给其添加数据!

    C#反射机制

    C#里面详解反射机制, Assembly类可以获得程序集的信息,也可以动态的加载程序集,以及在程序集中查找类型信息,并创建该类型的实例。 使用Assembly类可以降低程序集之间的耦合,有利于软件结构的合理化。

    .NET C# 反射机制实现无Bug插件演示源码(支持XML配置文件)

    利用.NET反射机制,只要程序实现了预定的接口,就可以被主程序实例化,并调用显示方法将其显示而不需要知道其类名。支持XML格式的配置文件。

    C#定义简单的反射工厂实例分析

    本文实例讲述了C#定义简单的反射工厂用法。...然后,实例化几个水果类,代码如下: class Banana : Fruit { public override void Eating() { Console.WriteLine(香蕉扒皮吃。。。); } } class Orange : Frui

    通过窗体namespace+name实例化并打开窗体

    通过窗体namespace+name实例化并打开窗体,程序集,反射。

    适合初学者的C# 泛型详解

    本文讨论泛型处理的问题空间、它们的实现方式、该编程模型的好处,以及独特的创新(例如,约束、一般方法和委托以及一般继承)。此外,本文还讨论 .NET Framework 如何利用泛型。

Global site tag (gtag.js) - Google Analytics