我正在創建一個NuGet包,我想在這裏使用兩個Web服務。NuGet包:如何添加對web服務的引用?
我開始通過手動添加服務和修改配置文件的文件。但是當我瀏覽文件並更正引用時,我明白這種方法並不富有成效,特別是如果以後我需要更新Web服務和引用。我搜索解決方案,但幾乎找不到有用的東西。
因此,我的問題是,什麼是正確的方法添加到網絡服務引用到NuGet包?
謝謝。
我正在創建一個NuGet包,我想在這裏使用兩個Web服務。NuGet包:如何添加對web服務的引用?
我開始通過手動添加服務和修改配置文件的文件。但是當我瀏覽文件並更正引用時,我明白這種方法並不富有成效,特別是如果以後我需要更新Web服務和引用。我搜索解決方案,但幾乎找不到有用的東西。
因此,我的問題是,什麼是正確的方法添加到網絡服務引用到NuGet包?
謝謝。
我選擇的方法是使用svcutil來爲Web服務生成代理類。然後,我可以使用這個代理類來訪問Web服務,或者進一步創建基於它的dll,並在目標項目中引用此dll。
在情況下,它可能是有用的人,這裏是PowerShell的代碼創建一個基於web服務URL代理類和dll:
$className = "SomeClass";
$svcUri = "http://.../SomeWebService.svc?wsdl";
$csFile = $className + '.cs';
$dllName = [System.IO.Path]::Combine($temp, $className + ".dll")
$svcUtilresult = & svcutil.exe /noConfig /out:$csFile $svcUri
csc.exe /t:library /out:$dllName $csFile
我已經採取了類似的方法來處理我的工作中需要使用的Web API。我有幾個庫作爲Web服務的「包裝器」,以便我可以在一個項目中管理它,並使用NuGet將其加入其他庫。 – Logarr
您可以使用Wsdl.exe用。如果你安裝了Visual Studio,那麼你應該可以在這裏找到C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin或類似的路徑,具體取決於你的精確版本。
微軟文檔非常簡單https://msdn.microsoft.com/en-us/library/7h3ystb6%28VS.80%29.aspx。
我發現這對於asmx Web服務更好,因爲它生成的靜態類與使用Visual Studio中的添加Web服務/更新Web服務功能生成的類精確匹配。您只需將由該工具生成的.cs文件添加到您的項目中,並刪除您的Web引用。您可能需要將您的using
引用更新爲新的命名空間,但僅此而已。
由svcutil.exe生成的靜態類更適合WCF服務,如果需要從命令行找到該工具,則該工具位於相同的目錄中。
我誤解了,還是應該無法右鍵點擊您的服務並執行「更新服務參考」? –
從項目 - 是的。但我的想法是,如果我決定更新軟件包,那麼我還可以在那裏快速添加/刪除/更新Web服務。因此,使用我的軟件包的人不應該知道某些Web服務需要更新。雖然,是的,我不確定這是如何工作的,但我對創建NuGet包頗爲陌生。 – Anelook