我有一个调用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