我试图解决的根本问题是为什么我尝试使用的所有WSDL解析器(Perl,Python或Node.js)都不能为我正在尝试与之通信的SOAP服务生成存根。该服务(用.NET编写)表示使用svcutil.exe生成将成为代理客户端的C#代码。只有一个问题。
我完全不知道C#。甚至没有一点点。
所以,我瘫痪了一个Windows VM(ievms救援!),安装.NET4.0框架,并生成一个proxy.cs(6000行!!)和一个proxy.config文件(XML来救援??)。我将这些文件复制到我的Ubuntu主机,安装mono-complete,然后尝试“gcms proxy.cs”。马上,我得到以下内容(约100次,不同的行号):
proxy.cs(4602,9): error CS0234: The type or namespace name `ServiceModel' does not exist in the namespace `System'. Are you missing an assembly reference?
我完全不知道自己在做什么。我想要做的就是在各种情况下准确地找出正在发送和接收的XML,这样我就可以用普通语言复制它。欢迎任何和所有建议。如果可能的话,我宁愿留在Linux上,只是因为我没有与SOAP服务和对抗我的操作系统。
答案 0 :(得分:2)
您使用了错误的命令行参数来编译生成的文件,难怪它失败了。
http://linux.die.net/man/1/mcs
必须使用 -r
来告诉编译器哪些程序集必须用作引用。
由于您根本没有C#编程经验,您可能会发现很难让命令行正确。我建议你先在Windows和Visual Studio上了解它,然后转到Mono和MonoDevelop。通过创建一个C#项目(.csproj),可以更容易地编译,因为MSBuild和xbuild将负责调用编译器。
你不能跳得太远。