C#的反射使用实例

作者:outlela  来源:本站原创   发布时间:2019-6-27 16:43:10

有时候由于项目结构的原因,会出现相互引用的情况,我们知道C#是不支持相互引用的,这时间如果要引用另外的类,就必须使用反射。

C#的反射方法很简单:

            string bll = AppDomain.CurrentDomain.BaseDirectory + @"bin\要引用的dll全名(带.dll文件名)";//dll文件路径
            var asm = System.Reflection.Assembly.LoadFile(bll);//加载dll
            var type = asm.GetType("要引用的dll名(不带.dll文件名)");//获取dll类型
            var instance = asm.CreateInstance("要引用的dll名(不带.dll文件名)");//实例化dll
            //var method = type.GetMethods()[2];//选择要调用的方法
            var method = type.GetMethod("InsertBillInfoByReflection");//也可以具体到方法名称
            object[] parameters = { BillType.ReturnBill, model, billIndexID, dbHelper, error };//初始传参
            bool b = (bool)method.MakeGenericMethod(typeof(T)).Invoke(instance, parameters);//调用方法
            if (b)
            {
                billIndexID = (int)parameters[2];//返回参数
            }
            else
            {
                error = (string)parameters[4];//返回参数
            }
            return b;

实例图:

image.png

*本文最后修改于:2019-6-27 16:56:18
本文标签: C# 反射 使用实例
本文由本站原创发布, 本文链接地址:https://outlela.com/Code/55.html
转载或引用请保留地址并注明出处:outlela.com