JSONを厳密に型指定されたクラスに変換する際にエラーが発生しました。データ契約を使用したJSONからC#オブジェクト - ここでは何が欠けていますか?
マイJSON:{"listBoxID":"ctl00_ctl00_MainContentRoot_MainContent_lstBxSettings","sourceItemText":"Horizontal Bar","sourceItemValue":"Horizontal"}
DroppedItem droppedItem = JsonConvert.DeserializeObject<DroppedItem>(json);
/// <summary>
/// Outlines an object which is useful in simplifying how a CormantRadDock is created.
/// Instead of passing in lots of parameters, would rather just pass in an object that the
/// CormantRadDock knows how to interpret.
/// </summary>
[DataContract]
public class DroppedItem
{
private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
[DataMember(Name = "sourceItemText")]
public string Text { get; set; }
[DataMember(Name = "sourceItemValue")]
public string Value { get; set; }
[DataMember(Name = "listBoxID")]
public Reports ReportType { get; set; }
public DroppedItem() { }
public DroppedItem(string text, string value, string listBoxID)
{
Logger.DebugFormat("Text: {0}, Value: {1}, slidingPaneTitle: {2}", text, value, listBoxID);
Text = text;
Value = value;
ReportType = DetermineReportType(listBoxID);
}
private Reports DetermineReportType(string listBoxID)
{
if (listBoxID.Contains("lstBxHistorical"))
{
return Reports.HistoricalReport;
}
else if (listBoxID.Contains("lstBxCustom"))
{
return Reports.CustomReport;
}
else
{
return Reports.None;
}
}
}
問題がReportTypeにlistBoxIDを変換しています。
キャッチされないSys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException:エラー 'CableSolve.Web.Reports' が
それは関係なく、文が見つかった場合かどうかの発生を入力する値 "ctl00_ctl00_MainContentRoot_MainContent_lstBxSettings" を変換しますヒットしたり、デフォルトではelseブロックになります。私がlistBoxIDパラメータを渡そうとしない場合、発生しません。
ここに何か不足しています。私のDataMemberの名前は何もしていないのですか?私は彼らが正しいプロパティにlistBoxIDをマップすると思った。このようなものに
それを行いました。ありがとうございました。 –