我想创建一个动态调用实例化类的公共方法的方法(使用反射)。
首先,我有我的课:
namespace NFSe.Classes.Models.Classes.NFSeWeb
{
public class Service
{
public string IdService { get; set; }
public string Name {get; set; }
public getKey()
{
return IdService + Name;
}
}
}
方法“getKey”将在几个类中。
好的,直到那里......但我正在创建一个函数,它从动态实例化的对象的函数getKey返回值。
我有一个函数,我将传递一个对象作为参数:
internal static string getValorDaClasse(object valor)
{
if (valor.ToString().Contains("NFSe.Classes.Models.Classes"))
{
Type myType = Type.GetType(valor.ToString());
object myObj = Activator.CreateInstance(myType);
//Invoking a non-static method (How to invoke a non static method??)
return (string)myType.InvokeMember("getKey", BindingFlags.InvokeMethod, null, myObj, new object[] { valor });
}
else
return valor.ToString();
}
当我尝试这样做时(从方法“ getKey ”获取值......我收到以下异常:找不到方法'NFSe.Classes.Models.Classes.NFSeWeb.Service.getKey'。
祝一切顺利!