zoukankan      html  css  js  c++  java
  • C#反射--------创建对象实例

    C#反射--------创建对象实例

          C#创建对象实例共有三种方法
        (1)通过System.Reflection.Assmbly里方法获得实例,主要根据类的Fullname和构造函数的参数创建实例,包括了私有和公有的,很强大

     public object CreateInstance(string typeName);//使用区分大小写的方式找到指定的类型名称,FullName,
     public object CreateInstance(string typeName, bool ignoreCase);//使用指定的类型名称,FullName,是否区分大小写由参数决定

    //使用多种参数,binder为Null,不知道什么东西,args为构造函数的参数,culture和activation可以为null,不知道什么东西
    public virtual object CreateInstance(string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes);

    //创建实例的例子:
    var obj = Assembly.LoadFrom(@"D:应用软件VS2017C#WindowsFormsApp16ClassLibrary1inDebugClassLibrary1.dll").CreateInstance(参数)

                     (2)采用System.Activator里静态方法CreateInstance获得对应的实例

    public static object CreateInstance(Type type);//根据公有的无参的构造函数创建对象实例
    public static object CreateInstance(Type type, bool nonPublic);//如果公共或非公共默认构造函数都可以匹配,则为 true;如果只有公共默认构造函数可以匹配,则为 false。
    public static object CreateInstance(Type type, object[] args, object[] activationAttributes);//args为构造函数的参数
    public static object CreateInstance(Type type, params object[] args);
    public static object CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture);
    public static object CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes);


    public static ObjectHandle CreateInstance(string assemblyName, string typeName);
    public static ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes);



  • 相关阅读:
    Leetcode 1711. 大餐计数(桶)
    macOS下安装powerline-status失败(报错Could not install packages due to an EnvironmentError)
    macOS下安装oh my zsh失败(报错Connection refused)
    Chapter 10 Operator Overloading
    牛客IOI周赛26-普及组 B. 子序列(int128)
    关于状压DP中子集状态的枚举
    2021蓝桥杯省赛第一场C/C++A组 试题E:回路计数(状压DP)
    AcWing 2879. 画中漂流(简单DP)
    Leetcode 525. 连续数组(前缀和性质/map)
    牛客小白月赛34 B. dd爱探险(状压DP)
  • 原文地址:https://www.cnblogs.com/LGDD/p/9574426.html
Copyright © 2011-2022 走看看