如何动态选择要执行的方法
本文关键字:执行 方法 选择 何动态 动态 | 更新日期: 2023-09-27 18:25:04
我想动态选择方法
我有一个20重载的方法,我想动态选择这些方法
假设我有通用List<MyClass> lst = new List<MyClass>();
class Myclass
{
String Paraname {Get; Set;}
String KeyName {Get; Set;}
String Border {Get; Set;}
.... So on
}
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey"));
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey"));
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey", Border="Left"));
现在我想根据列表中添加的参数动态调用该方法。谢谢
最终,您只需要查看列表和每个项目,并有一些标准来决定调用哪个方法。一旦您决定可以调用这种方法
Type myType = Type.GetType("MyClass");
ConstructorInfo myConstructor = myType.GetConstructor(Type.EmptyTypes);
object myClassObject = myConstructor.Invoke(new object[]{});
MethodInfo myMethod = myType.GetMethod("Method Name");
object myValue = myMethod.Invoke(myClassObject, new object[]{100});
您需要利用以下功能:
MethodInfo.Invoke(...)
以下是如何:http://msdn.microsoft.com/en-us/library/a89hcwhh.aspx
您应该更好地阅读一些关于OOP的文章,并尝试为您的应用程序构建一个更友好的架构。然后你们所有的问题都会变得更容易理解,并且与当前的不同。