using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace stringConvertClass
{
class test
{
public void Method()
{
Console.WriteLine("调用成功!");
}
public void Method(testcase)
console.WriteLine(testcase.toString());
}
}
class Program
{
public static void run(TestCase testcase)
{
string strClass = "stringConvertClass.test";
//命名空间+类名
string strMethod = "Method";//方法名
Type t;
object obj;
t = Type.GetType(strClass);//通过string类型的strClass获得同名类“t”
System.Reflection.MethodInfo method = t.GetMethod(strMethod);//通过string类型的strMethod获得同名的方法“method”
obj = System.Activator.CreateInstance(t);//创建t类的实例 "obj"
method.Invoke(obj,null);//t类实例obj,调用方法"method"
//上面的方法是无参的,下面是有参的情况.
object[] objs = new object[]{testcase};
method.Invoke(obj,objs );//t类实例obj,调用方法"method(testcase)"
}
static void Main(string[] args)
{
TestCase testcase =
new TestCase();//自己定义的类
run(testcase);
}
}
}
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace stringConvertClass{ class test { public void Method() {
“
反射
”其实就是利用程序集的元数据信息。
反射
可以有很多
方法
,编写程序时请先导入 System.Reflection 命
名
空间。
1、假设你要
反射
一个 DLL 中的类,并且没有引用它(即未知的类型):
Assembly assembly = Assembly.LoadFile(程序集路径,不能是相对路径); // 加载程序集(EXE 或 DLL)
dynamic obj = assembly.CreateInstance(类的完全限定
名
(即包括命
名
空间)); // 创建类的实例
2、若要
反射
当前项目中的类(即当前项目已经引用它了)可以为:
Assembly assembly
在很多情况下,我们都需要使用字符串来
转
换成
方法
,因为这个可以减少循环,降低代码的复杂度,而且还可以复用。
下面我们就介绍一下java的
反射
功能:
TestRef.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
public class Test...
在很多情况下,我们都需要使用字符串来
转
换成
方法
,因为这个可以减少循环,降低代码的复杂度,而且还可以复用。
下面我们就介绍一下java的
反射
功能:
TestRef.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
* Created by I...
在oc中将字符串
转
换成
类名
直接调用NSClassFrom
String
("classname")即可,但是到了swift中变的麻烦多了
swift中如果要将字符串
转
换为类型需要以下几个步骤
1.获取包
名
var name = Bundle.main.object(forInfoDictionaryKey: "CFBundleExecutable") as?
String
//这是获取项目的
名
...