如何解决类型' System.ArgumentNullException'的未处理异常发生在mscorlib.dll错误

时间:2017-04-19 06:07:38

标签: c# reflection

我试图在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;

    }
}

enter image description here

2 个答案:

答案 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());
   }