我正在尝试绑定以下内容
namespace Webservice_Test.MOdel
{
public class TestModelcs
{
public int ID { get; set; }
public string FirstName { get; set; }
public List<Address> Address { get; set; }
}
public class Address
{
public string Street { get; set; }
public string City { get; set; }
}
}
这是我的代码,但是当它到达
时我一直收到错误List<TestModelcs> cp = new List<TestModelcs>();
TestModelcs tm = new TestModelcs();
tm.FirstName = "fm";
tm.ID = 1;
tm.Address[1].Street = "st1";
tm.Address[1].City = "city1";
cp.Add(tm);
我得到的错误是
类型&#39; System.NullReferenceException&#39;的例外情况发生在Webservice Test.dll中但未在用户代码中处理
附加信息:未将对象引用设置为对象的实例。
答案 0 :(得分:3)
在代码中将TestModelcs类更改为
public class TestModelcs
{
public TestModelcs()
{
this.Address = new List<Address>();
}
public int ID { get; set; }
public string FirstName { get; set; }
public List<Address> Address { get; set; }
}
您需要在容器类的构造函数内初始化列表对象,以创建列表的对象。否则将发生空引用异常。
C#6.0中用于初始化地址列表的替代方法
public class TestModelcs
{
public int ID { get; set; }
public string FirstName { get; set; }
public List<Address> Address { get; set; } = new List<Address>();
}
答案 1 :(得分:1)
使用以下内容更改您的代码:
List<TestModelcs> cp = new List<TestModelcs>();
TestModelcs tm = new TestModelcs();
tm.FirstName = "fm";
tm.ID = 1;
tm.Address=new List<Address>();
tm.Address.Add(new Address())
tm.Address[0].Street = "st1";
tm.Address[0].City = "city1";
cp.Add(tm);
答案 2 :(得分:0)
您需要在某处初始化列表,例如在构造函数中。
public class TestModelcs
{
public int ID { get; set; }
public string FirstName { get; set; }
public List<Address> Address { get; set; }
public TestModelcs()
{
Address = new List<Address>();
}
}