我有一个exe文件,该文件可以通过另一种方法来启动参数。
我的exe文件的主要方法在我的program
类中,该类如下:
static void Main(String[] args)
{
Application.Run(new PAMain(args[0])); //args[0] is the parameter
}
我通过调用args [0](这是JSON数据)来获取发送的参数。
注意另一个类new PAMain
,我将这个args [0]传递给它的构造函数,如下所示:
public PAMain(string json)
{
InitializeComponent();
SetJsonData(json);
}
SetJsonData()
方法反序列化json字符串,这是发生错误的地方,SetJsonData()
方法如下所示:
string jsonData;
private AsanaRootData root = new AsanaRootData();
public string SetJsonData(string json)
{
this.jsonData = json;
root = JsonConvert.DeserializeObject<AsanaRootData>(jsonData); //The error happens here
return json;
}
错误发生在"root =..."
。
我得到的错误是newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value ... at line ...
如果我在原始JSON数据上调用SetJsonData()
方法,而不是exe传递了该方法,则一切正常。所以我认为错误本身就是在将JSON数据传递到exe文件并调用args [0]之后,数据不再是JSON了吗?
这是我的GUI中的错误弹出窗口:
错误发生在assignee_status:
中l
符号later
上
答案 0 :(得分:0)
问题在逃避,我改用这种方式启动exe文件来解决它
ProcessStartInfo info = new ProcessStartInfo
{
Arguments = "\"" + jsonData.Replace("\"", "\\\"") + "\"",
FileName = "path"
};
Process.Start(info);
我在这里找到它:How do I start a .exe with a json string as parameter correctly?