zoukankan      html  css  js  c++  java
  • 反射方法调用例子

    private List<GetNewDateDTO> Reflection()
    {
    object obj;
    Assembly assembly = Assembly.Load("NetGet.UI");//加载DLL,NetGet.UI 为类库名称
    Type t = assembly.GetType("NetGet.UI.GetNewData.GetNewDataMastMVP.GetNewDataMastModel"); 

    //不是静态方法需要用到这一部分
    obj = t.InvokeMember(null,
    BindingFlags.DeclaredOnly |
    BindingFlags.Public | BindingFlags.NonPublic |
    BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);


    List<GetNewDateDTO> a;
    a = (List<GetNewDateDTO>)t.InvokeMember("Query", BindingFlags.Public | BindingFlags.Instance |
    BindingFlags.InvokeMethod, null, obj, new Object[] { "" });
    return a;

    }

    public void LoadForm()
    {


    Assembly assembly = Assembly.Load("NetGet.UI");
    Type t = assembly.GetType("NetGet.UI.FormLoadFacade");

    var frm = CapitalAnalysisMast.ActiveForm;
    t.InvokeMember("GetNewDataMastForm", BindingFlags.Public | BindingFlags.Instance |BindingFlags.Static|
    BindingFlags.InvokeMethod, null, null, new Object[] { frm });
    LoadData();

    }

    public void LoadData()
    {
    Assembly myAs = Assembly.Load("NetGet.UI");
    Type T = myAs.GetType("NetGet.UI.GetNewData.GetNewDataListMVP.GetNewDataList");
    object obj = T.InvokeMember(null,
    BindingFlags.DeclaredOnly |
    BindingFlags.Public | BindingFlags.NonPublic |
    BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);

    List<GetNewDateDTO> a=new List<GetNewDateDTO>();
    a = Reflection();


    T.InvokeMember("LoadData", BindingFlags.Public | BindingFlags.Instance |BindingFlags.NonPublic|
    BindingFlags.InvokeMethod, null, obj, new Object[] { a });
    }

  • 相关阅读:
    程序包管理
    磁盘篇
    centos7上常用软件安装
    这个端午
    字节码技术及动态代理
    浅析同步异步阻塞非阻塞
    String拾遗
    Java注解拾遗
    设计模式之总结篇
    设计模式之访问者模式
  • 原文地址:https://www.cnblogs.com/huzige/p/6546912.html
Copyright © 2011-2022 走看看