我有一個調用c#exe的perl腳本。我需要傳遞一個數據結構是這樣將Perl哈希變換爲c#keyvaluepair
testA => 123, testB => 111 etc
我需要構建這個變量在Perl和它傳遞給我的C#exe文件作爲命令行參數。
我選擇在c#中將此值存儲爲perl和keyvaluepair中的散列值。
所以,在Perl代碼,我構建
%test_id
我有把它傳遞給程序的麻煩。我嘗試了一些東西,但似乎有兩方面都需要解析。像轉換哈希到字符串;然後在c#端將字符串轉換爲kvp。這是預期還是有更好的方法來做到這一點。
這是我嘗試過的一種方法。
for(keys %ids)
{
my $key = join (":", $_, $ids{$_});
$name = join (";", $key, $name);
}
我打電話與
UpdateCode.exe -add $name;
C#exe文件,這將是像
UpdateCode.exe -add "testA:123;testB:111"
所以,當C#代碼見此。我必須做
string[] splits = args[1].split(new char[] {';'});
foreach(string split in splits)
{
//You get the idea
//split again and construct KVP
}
好像很多代碼似的。有沒有更好的辦法?我在Perl模塊中嘗試過Dumper,但即使如此,我也需要在C#端解析。
感謝您的期待
您需要序列化和反序列化_somehow_因爲CLI參數始終是純文字。 – knittl 2014-09-11 08:45:35
雙方都使用JSON,已經有序列化和反序列化的庫。 – choroba 2014-09-11 08:47:13