簡體   English   中英

NuGet包:如何添加對webservices的引用?

[英]NuGet packages: how to add references to webservices?

我正在創建一個NuGet包,我想在其中使用兩個Web服務。

我首先手動添加服務文件並修改配置文件。 但是當我瀏覽文件並更正引用時,我明白這種方法效率不高,特別是如果以后我需要更新web服務和引用。 我用谷歌搜索解決方案,但幾乎找不到任何有用的東西。

因此,我的問題是,將Web服務的引用添加到NuGet包中的正確方法是什么?

謝謝。

我選擇的方法是使用svcutil為Web服務生成代理類。 然后我能夠使用此代理類來訪問webservice,或者更進一步並基於它創建dll並在目標項目中引用此dll。

如果它對某人有用,這里是powershell代碼,它基於webservice 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

您可以使用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服務,如果需要從命令行查找,該工具位於同一目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM