Namespace causes NullReferenceException?
本文关键字:NullReferenceException causes Namespace | 更新日期: 2023-09-27 17:54:46
我有以下程序,这是一段示例代码,展示了c#反射如何在类上操作。一切正常,没有任何问题。
public class Program
{
public static void Main()
{
Type T = Type.GetType("Customer");
Console.WriteLine("Information about the Type object: ");
Console.WriteLine(T.Name);
Console.WriteLine(T.FullName);
Console.WriteLine();
Console.WriteLine("Property info:");
PropertyInfo[] myPropertyInfoArray = T.GetProperties();
foreach(PropertyInfo myProperty in myPropertyInfoArray)
{
Console.WriteLine(myProperty.PropertyType.Name);
}
Console.WriteLine();
Console.WriteLine("Methods in Customer:");
MethodInfo[] myMethodInfoArray = T.GetMethods();
foreach(MethodInfo myMethod in myMethodInfoArray)
{
Console.WriteLine(myMethod.Name);
}
Console.ReadKey();
}
}
class Customer
{
public int ID {get;set;}
public string Name {get;set;}
public Customer()
{
this.ID = -1;
this.Name = string.Empty;
}
public Customer(int ID, string Name)
{
this.ID = ID;
this.Name = Name;
}
public void PrintID()
{
Console.WriteLine("ID: {0}", this.ID);
}
public void PrintName()
{
Console.WriteLine("Name: {0}", this.Name);
}
}
我遇到的问题是,当我在一个命名空间中包装所有代码时,我突然在Type对象上得到一个NullReferenceException。为什么会这样呢?
因为它不再知道Customer在哪里。你需要
Type T = Type.GetType("NameSpaceName.Customer");