这可能是一个非常简单的原因,但是当给对象保湿时,我会一直得到“值不能为空”的例外:
public class MyObject
{
public MyObject() {
}
public virtual IList<MemberObject> MemberObjects { get; protected set; }
[JsonProperty] public virtual SubObject LastMemberObject {
get { return MemberObjects.OrderByDescending(x => x.CreatedOn).FirstOrDefault() ?? null; }
}
}
在对对象进行水合时,如果MemberObjects为null,则LastMemberObject会抛出一个不能为空的异常。这是什么交易?
答案 0 :(得分:0)
如果对象MemberObjects
为null,则无法在其上调用任何实例方法。
[JsonProperty]
public virtual SubObject LastMemberObject {
get {
return MemberObjects != null
? MemberObjects.OrderByDescending(x => x.CreatedOn).FirstOrDefault()
: null; }
}
此外,当您调用FirstOrDefault()
方法时,也必须指定此默认值。
MemberObjects
.OrderByDescending (x => x.CreatedOn)
.Default (something)
.FirstOrDefault ();
答案 1 :(得分:0)
如果MemberObjects为null,则在尝试访问OrderByDescending等方法或属性时会出现此异常。试试这个:
[JsonProperty] public virtual SubObject LastMemberObject {
get { return MemberObjects != null? MemberObjects.OrderByDescending(x => x.CreatedOn).FirstOrDefault() : null; }
}