我想「模擬」VS2010插件中的右鍵單擊/更新服務引用命令。我有一個對包含(Silverlight ...)項目的引用,我知道服務引用的名稱和服務的URL。
我發現這個:http://dedjo.blogspot.com/2007/03/adding-web-references-to-your-vs.html,但它只適用於asmx(它使用System.Web.Services而不是System.ServiceModel),而不是wcf。 有沒有任何選擇但從代碼調用svcutil?如果是這樣,怎麼樣? (我使用SvcUtil工具或slsvcutil?我怎麼把它從裏面插件?)
感謝是否可以從VS2010插件中刷新WCF服務引用?
10
A
回答
8
我相信這個Visual Studio的命令是「Project.UpdateServiceReference
」。所以,我想你可以嘗試選擇你感興趣的節點上,並運行此命令,像這樣:
envDTE.Windows.Item(vsWindowKindSolutionExplorer).Activate();
envDTE.ActiveWindow.Object.GetItem(@"MyProject\Service References\Proxy").Select(vsUISelectionType.vsUISelectionTypeSelect);
envDTE.ExecuteCommand("Project.UpdateServiceReference");
2
如果你正在尋找更多的編程方式做到這一點,你可以這樣做下列。這種方法不需要使用DTE自動化層,它將改變用戶的選擇並執行命令。請注意,這是在具有IServiceProvider的VSPackage的上下文中,以便它可以將實例接收到核心Visual Studio接口等等。
您也可以從Addin中執行此操作,但是you'd need to get an IServiceProvider和添加對(至少)Microsoft.VisualStudio.Shell.Interop.dll和Microsoft.VisualStudio.WCFReference.Interop的引用。這些二進制文件的參考彙編可在Visual Studio 2010 SDK中找到。
IVsSolution solution = GetService(typeof(SVsSolution)) as IVsSolution;
if (solution != null)
{
IVsHierarchy solutionHierarchy = solution as IVsHierarchy;
if (null != solutionHierarchy)
{
IEnumHierarchies enumHierarchies;
Guid nullGuid = Guid.Empty;
ErrorHandler.ThrowOnFailure(solution.GetProjectEnum((uint)__VSENUMPROJFLAGS.EPF_ALLINSOLUTION, ref nullGuid, out enumHierarchies));
if (enumHierarchies != null)
{
uint fetched;
IVsHierarchy[] hierarchies = new IVsHierarchy[1];
IVsWCFReferenceManagerFactory wcfReferenceManagerFactory = GetService(typeof(SVsWCFReferenceManagerFactory)) as IVsWCFReferenceManagerFactory;
if (wcfReferenceManagerFactory != null)
{
while (enumHierarchies.Next(1, hierarchies, out fetched) == 0 && fetched == 1)
{
if (wcfReferenceManagerFactory.IsReferenceManagerSupported(hierarchies[0]) == 1)
{
IVsWCFReferenceManager referenceManager = wcfReferenceManagerFactory.GetReferenceManager(hierarchies[0]);
var referenceGroupCollection = referenceManager.GetReferenceGroupCollection();
referenceGroupCollection.UpdateAll(null);
}
}
}
}
}
}
我也建議看WCF Service Consumption Tools samples爲Visual Studio 2010的SDK。
相關問題
- 1. 是否可以從另一臺服務器「中繼」WCF服務?
- 2. 是否可以從同一個項目中使用WCF服務?
- 3. ServersAlive是否可以監視WCF服務?
- 4. 是否可以從WCF服務觸發定期事件?
- 5. 是否可以從服務中檢測到背壓印刷機?
- 6. 更新服務引用不是在WCF
- 7. 是否可以在MS Access中使用WCF服務?
- 8. 從VS2008遷移到VS2010的WCF服務
- 9. 是否可以使用WCF服務實現服務器端分頁,而不是WCF數據服務
- 10. 當使agument可選時,是否需要更新WCF服務引用?
- 11. 是否可以使用VS2010開發服務器發送電子郵件?
- 12. 是否可以使用「添加服務引用」選項在WCF中添加自託管服務?
- 13. 刷新服務引用更新app.config
- 14. .net項目是否可以發現並使用WCF服務?
- 15. 是否可以使用webHttpBinding對WCF服務執行CSRF攻擊?
- 16. 是否可以使用web.config將elmah與wf-wcf服務集成?
- 17. 是否可以使用屬性更改WCF服務的ServiceHostFactory?
- 18. IIS是否可以使用純http WCF服務?
- 19. WCF服務在jsdebug中生成的URL是否可以更改?
- 20. WCF數據服務(ODATA服務)是否可測試?我們可以寫WCF數據服務的單元測試
- 21. 我可以在WCF中使用netTcpBinding添加服務引用嗎?
- 22. 是否可以從QTP Web服務插件調用複雜的SOAP API?
- 23. 是否可以使用Mono的XSP Web服務器託管WCF服務?
- 24. 可以從域服務中刷新EntityManager嗎?
- 25. WCF服務引用
- 26. 是否可以強制刷新保存在服務中的域名?
- 27. VS2010:調試WCF服務異步調用
- 28. 在VS2010中構建WCF服務
- 29. 是否可以在Firefox插件中引用非數據目錄?
- 30. 是否可以刷新jqGrid組摘要?
noone?請,這是我的班級插件缺少的最後一件... – TDaver 2011-01-17 12:41:42