【Java精品源码栏目提醒】:网学会员Java精品源码为您提供C#反射查看和调用程序集的类和方法 - 其它资料参考,解决您在C#反射查看和调用程序集的类和方法 - 其它资料学习中工作中的难题,参考学习。
C反射查看程序集中的类和方法★说明:1.在 vs2005 中,新建控制台项目:TestReflection2.右键 , “添加” “新建项目” 选择 “解决方案” 点击 → , , “类库” 将类库命名为 TestClassLibrary3.将类库 TestClassLibrary 的生成--输出路径设置到 TestReflection 的 bindebug目录下。
解决方案下的文件如截图:4.在类库 TestClassLibrary 项目中,删除默认的类 Class1,添加 3 个类, OperatorClass, 分别是:Test1,Test2。
这三个类的代码如下:★类 OperatorClass 源代码:using Systemusing System.Collections.Genericusing System.Textnamespace TestClassLibrary /// /// 基本运算操作类 /// public class OperatorClass ////// 加法////////////public static int Addint x int y return x y////// 减法////////////public static int Subtractint x int y return x - y////// 乘法////////////public int Mulitipleint x int y return x y////// 除法////////////public int Divideint x int y if y 0 Console.WriteLine除法操作时除数不能为返回值暂设定为. return 0 return x / y /// /// 取余数求余 /// /// /// /// public int Remainint x int y if y 0 Console.WriteLine取余操作时除数不能为返回值暂设定为. return 0 return x y /// /// 获取数组的最大数以及最大数所在的索引 /// ///数组 ///输出最大值的所在的索引 /// public int GetMaxNumberint array out int maxIndex if array null array.Length 0 Console.WriteLine数组不能为null数组的长度也不能为暂定返回值为-1 maxIndex -1 return -1 int max array0 maxIndex 0 for int i 1 i array.Length i if max arrayi maxIndex i max arrayi return max /// /// 获得不定项数组的长度 /// /// /// public int GetVaryArrayLengthparams int array if array null return 0 return array.Length /// /// 测试带ref的参数 /// /// /// public void TestReferenceint inParameter ref int refParameter inParameter 5 refParameter 2 Console.WriteLine参数默认为输入参数如:inParameter不会改变原来的值.rn带ref或者out的参数是引用参数如:refParameter可以改变原来的值. /// /// 私有方法无法通过反射得到该方法的信息 /// private void PrivateMethod Console.WriteLine私有方法 ★类 Test1 源代码:using Systemusing System.Collections.Genericusing System.Textnamespace TestClassLibrary class Test1 public static void Func1 Console.WriteLineFunc1 public static void Func2 Console.WriteLineFunc2 ★类 Test2 源代码:using Systemusing System.Collections.Genericusing System.Textnamespace TestClassLibrary class Test2 public void Method1 Console.WriteLineMethod1 public void Method2 Console.WriteLineMethod2 ★切换到控制台 TestReflection,类 Program 源代码如下:using Systemusing System.Collections.Genericusing System.Textusing System.Reflectionnamespace TestReflection class Program static void Mainstring args Assembly assembly Assembly.LoadTestClassLibrary Console.WriteLine程序集信息:n assembly.FullName Console.WriteLine Type ts assembly.GetTypes//获得程序集中定义的类型 for int i 0 i ts.Length i string typeFullName tsi.FullName Console.WriteLine类型0:1的所有公共方法: i 1typeFullName MethodInfo mis tsi.GetMethods//返回当前类型的所有公共方法 for int j 0 j mis.Length j Console.WriteLine方法名0:1返回值的类型:2是静态方法:3 j 1 misj.Name misj.ReturnType misj.IsStatic ParameterInfo paras misj.Get