• C# Activator


    需要动态的创建一个实例模型的时候,就用Activator.CreateInstance(Type type);如果是明确的知道要创建哪个实例的模型,就可以用 new

    C#在类工厂中动态创建类的实例,所使用的方法为:

    1. Activator.CreateInstance (Type)

    2. Activator.CreateInstance (Type, Object[])

     
    两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数。

    动态创建时,可能会动态使用到外部应用的DLL中类的实例,则此时需要进行反编译操作,使用Reflection命名控件下的Assembly类。

    //先使用Assembly类载入DLL,再根据类的全路径获取类

    object result = null;
    Type typeofControl = null;
    Assembly tempAssembly;

    tempAssembly = Assembly.LoadFrom(vDllName);
    typeofControl = tempAssembly.GetType(vFullClassName);
    result = Activator.CreateInstance(typeofControl, objParam);

    实例化一个类的方式
    用 New 关键字实例化一个类
    New 关键字用于创建对象和调用构造函数。是实例化一个类最常见的方式。

    用 Activator 实例化一个类
    Activator 用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。其 CreateInstance 方法创建在程序集中定义的类型的实例。

    用 Assembly 实例化一个类
    Assembly 表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言运行库应用程序构造块。该类可以加载程序集、浏览程序集的元数据和构成部分、发现程序集中包含的类型以及创建这些类型的实例。

    加载程序集的推荐方式是使用 Load 方法。GetType 方法可用于在程序集中搜索特定类型。CreateInstance 方法可用于在程序集中搜索和创建类型的实例。
    ---------------------
    作者:只要你在
    来源:CSDN
    原文:https://blog.csdn.net/icebergliu1234/article/details/84062674
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Opencv在mac系统的安装与试用
    VINS 估计器之检查视差
    C语言——第零次作业
    C语言博客05指针
    循环结构
    C语言博客作业数组
    函数3
    C博客作业01分支、顺序结构
    group by的查询
    layui多张图片上传最多9张(新增和修改时的显示问题)
  • 原文地址:https://www.cnblogs.com/soundcode/p/10722863.html
Copyright © 2020-2023  润新知