C# 知道类名是字符串形式 怎么去实例对象

比如有类库ClassA下有四个类:a1、a2、a3、a4我想循环去实例对象for(inti=1;i<=4;i++){stringClassName="a"+i;然后实例对... 比如有类库ClassA下有四个类:a1、a2、a3、a4
我想循环去实例对象
for(int i=1;i<=4;i++)
{
string ClassName="a"+i;
然后实例对象,再调用实例对象的方法
}
展开
 我来答
匿名用户
2013-05-01
展开全部
/// <summary>
/// 调用远程方法
/// </summary>
/// <param name="assemblyFile">程序集名称</param>
/// <param name="typeName">类型名称</param>
/// <param name="methodName">方法名称</param>
/// <param name="parameters">参数列表</param>
/// <returns>无返回值则返回null</returns>
public object InvokeRemoteMethod(string assemblyFile, string typeName, string methodName, object[] parameters)
{
try
{
// 加载程序集
System.Reflection.Assembly Ay = System.Reflection.Assembly.LoadFrom(assemblyFile);
// 获取程序集中所有公共类型
Type[] tps = Ay.GetExportedTypes();
object returnValue = null;
// 遍历所获取的类型
foreach (Type tp in tps)
{
if (tp.Name == typeName)
{
returnValue = tp.GetMethod(methodName).Invoke(System.Activator.CreateInstance(tp), parameters);
break;
}
}
return returnValue;
}
catch
{
return null;
}
} 例:InvokeRemoteMethod("ClassA.dll", "a1", "Test", null)
匿名用户
2013-05-01
展开全部
Activator.CreateInstance(ClassName) 就解决了。至于调用,建议用接口做约束,反射调用性能很低。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式