`
xufei0110
  • 浏览: 110958 次
  • 性别: 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

    利用Type动态创建类实例(C#反射)可以演变抽象工厂

    在给定的标题“利用Type动态创建类实例(C#反射)可以演变抽象工厂”中,我们可以看到两个主要概念:Type和抽象工厂模式。下面将详细解释这两个知识点以及它们如何相互关联。 1. Type: C#中的Type类是System....

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

    通过反射,我们可以获取到实体类的属性及其对应的数据库字段,从而构建INSERT或UPDATE的SQL语句。这种方法极大地简化了数据库操作,提高了开发效率。 **总结** C#的泛型和反射为开发者提供了极大的灵活性和便利性...

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

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

    C# 反射举例 反射实例

    `Activator.CreateInstance(Type type)`允许我们根据类型名称创建对象,无需知道具体的类实例化语句。 3. **MethodInfo类**:表示方法的信息,包括方法名、参数和返回类型。可以使用GetMethod()方法获取特定方法,...

    C# 反射 实例

    在C#编程中,反射是一种强大的工具,它允许我们在运行时检查、实例化和操作程序集、类型、方法、属性等...通过学习这些示例,你可以更深入地掌握C#反射的用法,并将其应用到自己的项目中,提高代码的灵活性和可扩展性。

    C#实现反射实例和软件

    在C#中,反射主要通过`System.Reflection`命名空间中的类来实现。它能够动态地获取类型信息(如类、接口、结构等)和成员信息(如方法、属性、字段),并能在运行时创建和调用这些类型及成员。 1. **类型信息的获取...

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

    3. **动态实例化对象** 获取Type对象后,我们可以通过`Activator.CreateInstance()`方法动态创建对象。有两种常见方式: - 没有参数的构造函数:`MyClass instance = (MyClass)Activator.CreateInstance(myType);`...

    C#+实体类反射+初阶

    本主题聚焦于"C#+实体类反射+初阶",它涉及到如何利用C#的反射特性来自动化数据操作,以及如何结合XML进行数据存储。反射是.NET框架中的一个强大工具,它允许程序在运行时检查自身的行为,包括获取类型信息、创建...

    C# 反射经典实例,学习反射一步到位

    5. 调用静态方法:对于静态方法`WriteName`,调用方式稍有不同,不需要实例化对象,可以直接在类的`Type`对象上调用`GetMethod`并使用`Invoke`方法,传入`null`作为实例参数。 6. 错误处理:捕获可能出现的异常,并...

    C# 反射实例

    这个“C# 反射实例”提供了实际操作的例子,展示了如何利用反射来获取类的信息并进行动态操作。 反射的基本概念: 1. **程序集(Assembly)**: C#程序的编译结果,包含一个或多个类型的集合。例如,.dll或.exe文件...

    C#反射生成SQL实例

    在.NET框架中,C#是一种强大的面向对象的编程语言,其内置的反射机制为开发者提供了在运行时检查、实例化和交互对象的能力。本实例主要探讨如何利用C#的反射特性来动态生成SQL语句,这在处理动态数据操作或者构建...

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

    在C#编程中,反射、自定义特性、Web Services和XML序列化是四个非常重要的概念,它们在构建灵活、可扩展的应用程序时起着关键作用。让我们深入探讨这些主题,并结合给定的“DBWebService”文件名,了解它们在实际...

    c# 反射应用几乎最全面的实例

    泛型类可以通过反射实例化,并且可以访问其泛型参数的约束。 安全性与性能: 尽管反射提供了巨大的灵活性,但过度使用可能会导致性能下降,因为它涉及到运行时的类型查找和代码执行。在敏感操作中使用反射时,确保...

    C# 反射实例代码 接口方式动态加载dll方式

    本文将深入探讨如何通过接口方式动态加载DLL,以此来理解C#反射的应用。 首先,我们要知道什么是接口。在C#中,接口(Interface)是一种定义行为规范的类型,它不包含任何实现,只包含方法、属性、索引器和事件的...

    C#反射简单入门实例

    在.NET框架中,C#反射是一项强大的特性,它允许程序在运行时检查并操作类型的信息,包括类、接口、枚举、方法等。本篇将深入浅出地介绍C#反射的基本概念,以及如何通过反射来创建对象、访问成员和执行方法。 1. ...

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

    本文将深入探讨这两种拷贝方式以及它们在C#中的实现方法,特别是如何使用`MemberwiseClone`、反射以及反序列化技术。 首先,浅拷贝是通过`Object.MemberwiseClone()`方法来实现的。这个方法为对象创建一个新的实例...

    C#版本的一个封装和反射实例

    在这个"C#版本的封装和反射实例"中,我们将深入探讨两个核心概念:封装和反射。 封装是面向对象编程的基础,它指的是将数据和操作这些数据的方法绑定在一起,形成一个独立的单元,即类。在C#中,我们通过访问修饰符...

    C# 反射实例代码 接口方式动态加载dll方式Reflection

    总结一下,这个C#反射实例代码展示了如何通过接口动态加载和执行DLL中的代码,其核心知识点包括: 1. 接口:定义行为规范,实现多态性。 2. 反射:运行时检查和操作类型,如`Assembly`、`Type`、`Activator`的使用...

Global site tag (gtag.js) - Google Analytics