在 C# 控制台应用程序中反序列化对象
本文关键字:反序列化 对象 应用程序 控制台 | 更新日期: 2023-09-27 18:31:39
我使用 JavaScriptSerializer 类序列化对象,为 Console App 设置参数,然后反序列化
public class MyModel
{
public int LoanID { get; set; }
public decimal LoanAmount { get; set; }
public decimal LoanRate { get; set; }
public decimal LoanTerm { get; set; }
public string PIN { get; set; }
public string FullName { get; set; }
}
序列 化:
MyModel _model = new MyModel()
{
FullName = "test_FullName",
LoanID = 11110,
LoanAmount = 4000
};
var javaScriptSerializer = new JavaScriptSerializer();
StringBuilder sb = new StringBuilder();
javaScriptSerializer.Serialize(_model, sb);
调用 C# 控制台应用程序:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = @"...exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = sb.ToString();
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
反序列化:
string input = args[0];
var javaScriptSerializer = new JavaScriptSerializer();
var result = javaScriptSerializer.Deserialize<MyModel>(input);
如果我评论"全名="test_FullName"反序列化有效,但在其他情况下它会返回错误:无效的 JSON 原语:test_FullName
输入不正确。全名的值必须用双引号括起来,例如:
{"FullName":"test_FullName","LoanID":11110,"LoanAmount":4000}