我正在尝试填充包含包含enum
属性的对象的自定义可枚举的现有实例。当我这样做时,我System.ArgumentNullException: Value cannot be null
从JsonConvert.PopulateObject()
. 这可能是什么原因造成的?这是我的示例:
https://dotnetfiddle.net/CLYN3L
我正在尝试查看以下任何一项是否是原因:
在我的班上有枚举。
我的班级继承了IEnumerator
, IEnumerable
.
我有以下我无法控制的类和枚举。我无法更改它们:
public enum ErrorDisplayType : int
{
PopUp = 0,
ErrorPane = 1,
Statusbar = 2
}
[Serializable()]
public class ErrorObj
{
private string errorCode;
private ErrorDisplayType errorDispType;
public string ErrorCode
{
get { return this.errorCode; }
set {
this.errorCode = value;
if (errorCode != null)
{
this.setFields(errorCode);
}
}
}
public ErrorDisplayType ErrorDispType
{
get { return this.errorDispType; }
set { this.errorDispType = value; }
}
private void setFields(string errorCode)
{
this.errorDispType = (ErrorDisplayType)int.Parse(errorCode);
}
}
[Serializable]
public class ErrorDTO : IEnumerator, IEnumerable
{
private int indx = -1;
private List<ErrorObj> errorList;
public List<ErrorObj> ErrorList
{
get { return this.errorList; }
set { this.errorList = value; }
}
public ErrorDTO()
{
this.errorList = new List<ErrorObj>();
}
public int Add(ErrorObj error)
{
this.errorList.Add(error);
return 0;
}
public bool MoveNext()
{
if (indx < errorList.Count - 1)
{
++indx;
return true;
}
else
{
indx = -1;
return false;
}
}
下面是我的代码,我正在尝试反序列化
ErrorDTO errorDTO = new ErrorDTO();
string jsonString = GetErrorJSON();
下面的行会引发我的错误。System.ArgumentNullException:值不能为空。
Newtonsoft.Json.JsonConvert.PopulateObject(jsonString, errorDTO);
请让我知道有什么问题。如果您需要更多信息,请告诉我。
HUX布斯
相关分类