.net 获取错误:对象引用未设置为对象的实例

.net 获取错误:对象引用未设置为对象的实例,.net,c#-4.0,.net,C# 4.0,这是我的密码 公共类人物 { 公开名单详情; } 公营雇员 { 公共字符串Id{get;set;} 公共字符串名称{get;set;} 公共字符串proj{get;set;} 公共字符串No{get;set;} } //此方法是在服务中定义的 公共void ReadFiles() { DirectoryInfo dir=newdirectoryinfo(“E:/NewFolder/NewFiles”); FileInfo[]files=dir.GetFiles(“*”); 人员p=新人员();

这是我的密码

公共类人物
{
公开名单详情;
}
公营雇员
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共字符串proj{get;set;}
公共字符串No{get;set;}
}
//此方法是在服务中定义的
公共void ReadFiles()
{
DirectoryInfo dir=newdirectoryinfo(“E:/NewFolder/NewFiles”);
FileInfo[]files=dir.GetFiles(“*”);
人员p=新人员();
员工e=新员工();
foreach(文件中的文件信息)
{
XmlDocument doc=新的XmlDocument();
单据加载(f.全名);
e、 empId=doc.GetElementsByTagName(“Id”)[0].InnerText;
e、 empName=doc.GetElementsByTagName(“名称”)[0].InnerText;
e、 empSeatNo=doc.GetElementsByTagName(“否”)[0].InnerText;
e、 projGroup=doc.GetElementsByTagName(“Grp”)[0].InnerText;
p、 empDetails.Add(e);//这里我得到一个错误“对象引用未设置为对象的实例”
}          
}

感谢您的帮助。

Person类不会初始化
empDetails
。大多数人都会在构造函数中这样做

public class Person
{
   public Person()
   {
       empDetails = new List<Employee>();
   }

  public List<Employee> empDetails { get; private set; }
}
公共类人物
{
公众人士()
{
empDetails=新列表();
}
公共列表{get;private set;}
}

此外,属性名称的大小写也不符合约定。通常它会显示详细信息,甚至更好的EmployeeDetails。

Person类不会初始化
EmpDetails
。大多数人都会在构造函数中这样做

public class Person
{
   public Person()
   {
       empDetails = new List<Employee>();
   }

  public List<Employee> empDetails { get; private set; }
}
公共类人物
{
公众人士()
{
empDetails=新列表();
}
公共列表{get;private set;}
}

此外,属性名称的大小写也不符合约定。通常情况下,它会显示详细信息甚至更好的员工详细信息。

该列表从未分配;这应该起作用:

public class Person
{
    private readonly List<Employee> empDetails = new List<Employee>();
    public List<Employee> EmploymentDetails { get { return empDetails; } }
}
公共类人物
{
私有只读列表empDetails=新列表();
公共列表EmploymentDetails{get{return empDetails;}}
}

(并访问
.EmploymentDetails
,即
p.EmploymentDetails.Add(e);

列表从未分配;这应该起作用:

public class Person
{
    private readonly List<Employee> empDetails = new List<Employee>();
    public List<Employee> EmploymentDetails { get { return empDetails; } }
}
公共类人物
{
私有只读列表empDetails=新列表();
公共列表EmploymentDetails{get{return empDetails;}}
}
(并访问
.EmploymentDetails
,即
p.EmploymentDetails.Add(e);