C# 对象引用未设置为响应时对象错误的实例
我得到的C# 对象引用未设置为响应时对象错误的实例,c#,arrays,list,class,arraylist,C#,Arrays,List,Class,Arraylist,我得到的对象引用未设置为对象的实例。SoapUI错误。我使用记录器检查record是否持有正确的StartTime和EndTime,但由于某种原因,我在尝试将包含userId和TimePeriod的record对象添加到响应中时出错。另外,result是包含从DataAccess层返回的信息的变量。在此方面的任何帮助都将不胜感激 GetUserResponse response = new GetUserResponse(); UserRecord record = new UserRecord
对象引用未设置为对象的实例。
SoapUI错误。我使用记录器检查record
是否持有正确的StartTime
和EndTime
,但由于某种原因,我在尝试将包含userId
和TimePeriod
的record
对象添加到响应中时出错。另外,result
是包含从DataAccess
层返回的信息的变量。在此方面的任何帮助都将不胜感激
GetUserResponse response = new GetUserResponse();
UserRecord record = new UserRecord();
record.UserId = userId;
record.timePeriodList = new List<TimePeriod>();
for (int i = 0; i < result.Count; i += 2)
{
TimePeriod timeData = new TimePeriod();
timeData.StartTime = result[i].Time;
timeData.EndTime = result[i + 1].Time;
record.timePeriodList.Add(timeData);
}
response.UserRecordList.Add(record); // line I get that error
GetUserResponse=newgetuserresponse();
UserRecord=新的UserRecord();
record.UserId=UserId;
record.timePeriodList=新列表();
对于(int i=0;i
以下是我回答的代码:
public class GetUserResponse
{
private List<UserRecord> userRecordList;
public List<UserRecord> UserRecordList
{
get { return userRecordList; }
set { userRecordList = value; }
}
}
public class UserRecord
{
private string userId;
private List<TimePeriod> timePeriodList;
public string UserId
{
get { return userId; }
set { userId = value; }
}
public List<RbeActivationPeriod> TimePeriodList
{
get { return timePeriodList; }
set { timePeriodList = value; }
}
}
public class TimePeriod
{
private DateTime startTime;
private DateTime endTime;
public DateTime StartTime
{
get { return startTime; }
set { startTime = value; }
}
public DateTime EndTime
{
get { return endTime; }
set { endTime = value; }
}
}
公共类GetUserResponse
{
私有列表用户记录列表;
公共列表用户记录列表
{
获取{return userRecordList;}
设置{userRecordList=value;}
}
}
公共类用户记录
{
私有字符串用户标识;
私有列表时间周期列表;
公共字符串用户ID
{
获取{return userId;}
设置{userId=value;}
}
公共列表时间周期列表
{
获取{return timePeriodList;}
设置{timePeriodList=value;}
}
}
公共类时间段
{
私人日期时间开始时间;
私有日期时间结束时间;
公共日期时间开始时间
{
获取{return startTime;}
设置{startTime=value;}
}
公共日期时间结束时间
{
获取{return endTime;}
设置{endTime=value;}
}
}
您需要声明列表的新实例UserRecordList
,因为当您尝试插入元素时,它将为null
GetUserResponse response = new GetUserResponse();
response.UserRecordList = new List<UserRecord>();
GetUserResponse=newgetuserresponse();
response.UserRecordList=新列表();
或者,您可以在类级别或构造函数中添加此项
public class GetUserResponse
{
private List<UserRecord> userRecordList = new List<UserRecord>();
public List<UserRecord> UserRecordList
{
get { return userRecordList; }
set { userRecordList = value; }
}
}
公共类GetUserResponse
{
私有列表userRecordList=新列表();
公共列表用户记录列表
{
获取{return userRecordList;}
设置{userRecordList=value;}
}
}
您需要声明列表的新实例UserRecordList
,因为当您尝试插入元素时,它将为null
GetUserResponse response = new GetUserResponse();
response.UserRecordList = new List<UserRecord>();
GetUserResponse=newgetuserresponse();
response.UserRecordList=新列表();
或者,您可以在类级别或构造函数中添加此项
public class GetUserResponse
{
private List<UserRecord> userRecordList = new List<UserRecord>();
public List<UserRecord> UserRecordList
{
get { return userRecordList; }
set { userRecordList = value; }
}
}
公共类GetUserResponse
{
私有列表userRecordList=新列表();
公共列表用户记录列表
{
获取{return userRecordList;}
设置{userRecordList=value;}
}
}
响应在哪里声明?userRecordList
是否实例化了?我在你的代码中看不到它,但我假设你已经实例化了变量响应?@erik我为你编辑了这篇文章。抱歉,忘记了帖子上的声明。@DarrenDavies“是”响应已声明。是否需要启动userRecordList?我编辑了这篇文章以反映变化。感谢问题行是timeData.EndTime=result[i+1]。时间代码>哪里声明了响应
?userRecordList
是否实例化了?我在你的代码中看不到它,但我假设你已经实例化了变量响应?@erik我为你编辑了这篇文章。抱歉,忘记了帖子上的声明。@DarrenDavies“是”响应已声明。是否需要启动userRecordList?我编辑了这篇文章以反映变化。感谢问题行是timeData.EndTime=result[i+1]。时间代码>它说索引超出范围。必须为非负数且小于集合的大小。
在该响应上。添加行now@user4756836-最有可能的是此行timeData.EndTime=result[i+1]。时间代码>但是,这是一个不同的问题,因此您应该接受这个问题作为答案(它似乎已经解决了您的问题),并重新发布一个新问题,其中包含索引超出范围异常。它表示索引超出范围。必须为非负数且小于集合的大小。
在该响应上。添加行now@user4756836-最有可能的是此行timeData.EndTime=result[i+1]。时间
但是,这是一个不同的问题,因此您应该接受这个问题作为答案(它似乎已经解决了您的问题),并重新发布一个新问题,索引超出范围异常。