我试图在c#中学习reflection
,并在学习的同时获得此异常。
'System.ArgumentNullException' occurred in mscorlib.dll error
如何解决此错误?
class Program
{
static void Main(string[] args)
{
Assembly executingAssembly = Assembly.GetExecutingAssembly();
Type customerType = executingAssembly.GetType("Reflection.Customer");
object customerInstance = Activator.CreateInstance(customerType);
MethodInfo GetFullName = customerType.GetMethod("GetFullName");
string[] methodParameter = new string[2];
methodParameter[0] = "Minhaj";
methodParameter[1] = "Patel";
string Full_Name = (string)GetFullName.Invoke(customerInstance, methodParameter);
Console.WriteLine("Full Name = {0}", Full_Name);
Console.ReadKey();
}
}
客户类代码
class Customer
{
public string GetFullName(string First_Name, string Last_Name)
{
return First_Name + " " + Last_Name;
}
}
答案 0 :(得分:1)
如果你的程序集没有那个对象,你需要检查if (arr.size() > 0) {
for (int i = 0;i < arr.size() - 1;i++) {
arr[i]->draw();
}
arr.pop_back();
}
方法的输出。
例如:
GetType
我从https://msdn.microsoft.com/en-us/library/y0cd10tb(v=vs.110).aspx
获取了此代码简而言之,在进行任何调用之前,请确保您的对象/输入不为空。
答案 1 :(得分:0)
我认为你在下面的行中犯了一个错误。
Type customerType = executingAssembly.GetType("Reflection.Customer");
尝试打印装配类型并检查它为客户类提供的全名。
foreach(Type t in executingAssembly.GetTypes())
{
Console.WriteLine(t.FullName.ToString());
}