c# 反射备忘

时间:2021-09-06
本文章向大家介绍c# 反射备忘,主要包括c# 反射备忘使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.调用静态类public静态普通方法 ExecuteDataTable

var business = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(dll => dll.ManifestModule.ScopeName.ToLower() == "firstelite.oms.business.dll");
var sql = @"SELECT * FROM Table WHERE username=@LoginID)";
var dt = business.GetType("Firstelite.OMS.Business.Data.OMSSqlClientManager").InvokeMember("ExecuteDataTable"
    , System.Reflection.BindingFlags.InvokeMethod
    | System.Reflection.BindingFlags.Static
    | System.Reflection.BindingFlags.Public
    , null, null, new object[] { sql, new System.Data.SqlClient.SqlParameter[] { new System.Data.SqlClient.SqlParameter("@LoginID", loginID) } }) as System.Data.DataTable;

2.调用静态类泛型类型为string的public静态方法 Convert

var pass = business.GetType("FirsteLite.OMS.Business.Helper.ConvertHelper").GetMethod("Convert"
                    , System.Reflection.BindingFlags.InvokeMethod
                    | System.Reflection.BindingFlags.Static
                    | System.Reflection.BindingFlags.Public).MakeGenericMethod(typeof(string)).Invoke(null, new object[] { dt.Rows[0]["password"], string.Empty });
桂棹兮兰桨,击空明兮溯流光。

原文地址:https://www.cnblogs.com/nanfei/p/15234950.html