2014-11-24 174 views
0

我序列与JavaScriptSerializer类对象,设置参数的控制台应用程序,然后反序列化反序列化对象

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

+1

请问你输入究竟是什么样子? – 2014-11-24 13:09:30

+0

这里是input {LoanID:11110,LoanAmount:4000,LoanRate:17,LoanTerm:10,PIN:null,FullName:test_FullName} – rashad 2014-11-24 13:14:23

+0

对不起,这里必须是MyModel,我已经编辑 – rashad 2014-11-24 13:16:33

回答

0

输入不正确。对于全名的值必须用双引号括起来,例如:

{ “全名”: “test_FullName”, “的LoanID”:11110, “LoanAmount”:4000}

+0

输入参数取自StringBuilder sb,显示在第二代码狙击手 – rashad 2014-11-24 13:20:26