这是本文档旧的修订版!
.NET Skills
wsdl
Convert WSDL
Datei nach C# Class
cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools" SvcUtil.exe D:\Aufgaben\ZentraleDrucker\rzf_oaseSOAP.wsdl /out:D:\Aufgaben\ZentraleDrucker\oase_soap.cs
* Terminal 要用Administrator权限运行,否则会遇到错误。
默认情况下 WCF 不生成完整的WSDL文件,只有 operation,访问的时候采用 ..../?singlewsdl
才会生成包括类型在内的完整文件。
Yes, that's normal for WCF. By default, WCF will show just the operations in the WSDL itself - the data structures are documented in XSD files that are linked to the WSDL file.
可以创建一个BAT文件,命名空间为“DruckStrasse.Core.Contract”,双击即可产生CS文件。
shell
Set _SdkToolsPath=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools "%_SdkToolsPath%\SvcUtil.exe" /serviceContract /syncOnly /namespace:*,DruckStrasse.Core.Contract rzf_druckystem.wsdl Pause
写入压缩文件
using (var outputStream = new MemoryStream()) { using (var zipArchive = new ZipArchive(outputStream, ZipArchiveMode.Create)) { ZipArchiveEntry entry = zipArchive.CreateEntry("binary" + extension); using (var sourceStream = File.OpenRead(tempFileName)) // Ein Word Datei using (var destinationStream = entry.Open()) { sourceStream.CopyTo(destinationStream); } string metaInfoFileName = Path.Combine(Directory.GetCurrentDirectory(), "KOV_Paket/meta-info.xml"); zipArchive.CreateEntryFromFile(metaInfoFileName, Path.GetFileName(metaInfoFileName)); ZipArchiveEntry entrySkript = zipArchive.CreateEntry("skript.xml"); using (var skriptStream = new MemoryStream(skript)) // skript ist ein byte[] using (var destinationStream = entrySkript.Open()) { skriptStream.CopyTo(destinationStream); } } return outputStream.ToArray(); }