IVsAddWebReferenceDlg3.ShowAddWebReferenceDialog 方法

定义

显示 "添加服务引用" 对话框。

public:
 void ShowAddWebReferenceDialog(Microsoft::VisualStudio::Shell::Interop::IVsHierarchy ^ pProject, Microsoft::VisualStudio::Shell::Interop::IDiscoverySession ^ pDiscoverySession, Microsoft::VisualStudio::WCFReference::Interop::ServiceReferenceType referenceTypesAllowed, System::String ^ pszDialogName, Microsoft::VisualStudio::WCFReference::Interop::IVsWCFReferenceGroup ^ pExistingReferenceGroup, System::String ^ pszReferenceConfigContents, [Runtime::InteropServices::Out] Microsoft::VisualStudio::WCFReference::Interop::IVsAddWebReferenceResult ^ % ppReferenceResult, [Runtime::InteropServices::Out] int % pfCancelled);
void ShowAddWebReferenceDialog(Microsoft::VisualStudio::Shell::Interop::IVsHierarchy const & pProject, Microsoft::VisualStudio::Shell::Interop::IDiscoverySession const & pDiscoverySession, Microsoft::VisualStudio::WCFReference::Interop::ServiceReferenceType referenceTypesAllowed, std::wstring const & pszDialogName, Microsoft::VisualStudio::WCFReference::Interop::IVsWCFReferenceGroup const & pExistingReferenceGroup, std::wstring const & pszReferenceConfigContents, [Runtime::InteropServices::Out] Microsoft::VisualStudio::WCFReference::Interop::IVsAddWebReferenceResult const & & ppReferenceResult, [Runtime::InteropServices::Out] int & pfCancelled);
public void ShowAddWebReferenceDialog (Microsoft.VisualStudio.Shell.Interop.IVsHierarchy pProject, Microsoft.VisualStudio.Shell.Interop.IDiscoverySession pDiscoverySession, Microsoft.VisualStudio.WCFReference.Interop.ServiceReferenceType referenceTypesAllowed, string pszDialogName, Microsoft.VisualStudio.WCFReference.Interop.IVsWCFReferenceGroup pExistingReferenceGroup, string pszReferenceConfigContents, out Microsoft.VisualStudio.WCFReference.Interop.IVsAddWebReferenceResult ppReferenceResult, out int pfCancelled);
abstract member ShowAddWebReferenceDialog : Microsoft.VisualStudio.Shell.Interop.IVsHierarchy * Microsoft.VisualStudio.Shell.Interop.IDiscoverySession * Microsoft.VisualStudio.WCFReference.Interop.ServiceReferenceType * string * Microsoft.VisualStudio.WCFReference.Interop.IVsWCFReferenceGroup * string * IVsAddWebReferenceResult * int -> unit
Public Sub ShowAddWebReferenceDialog (pProject As IVsHierarchy, pDiscoverySession As IDiscoverySession, referenceTypesAllowed As ServiceReferenceType, pszDialogName As String, pExistingReferenceGroup As IVsWCFReferenceGroup, pszReferenceConfigContents As String, ByRef ppReferenceResult As IVsAddWebReferenceResult, ByRef pfCancelled As Integer)

参数

pProject
IVsHierarchy

项目的,将在该 IVsHierarchy 项目中添加引用。

pDiscoverySession
IDiscoverySession

IVsDiscoveryService要用于元数据下载的会话。

referenceTypesAllowed
ServiceReferenceType

引用的,或者 ServiceReferenceType Windows Communication Foundation (WCF) 或使用 ASP.NET 的 Web 服务 (.asmx) 。

pszDialogName
String

一个 String ,该属性包含对话框的标题。 可以为 Null。

pExistingReferenceGroup
IVsWCFReferenceGroup

现有 IVsWCFReferenceGroup。 可以为 Null。

pszReferenceConfigContents
String

一个 String 包含配置内容的。

ppReferenceResult
IVsAddWebReferenceResult

一个 IVsAddWebReferenceResult 包含结果的对象。 如果已取消此对话框,则可以为 Null。

pfCancelled
Int32

一个整数,它指定对话框是否已取消。

示例

下面的示例演示如何显示 " 添加服务引用 " 对话框。

/// Add a service reference to the given project.   
private static IVsWCFReferenceGroup TryAddServiceReference  
 (IVsHierarchy hierarchy, IServiceProvider serviceProvider,  
 IDiscoverySession discoverySession)  
{  
    Debug.Assert(serviceProvider != null, "Why are we passing in a NULL  
 service provider to a private method?");  

    IVsAddWebReferenceDlg3 awrdlg =   
 serviceProvider.GetService(typeof(SVsAddWebReferenceDlg3))  
 as IVsAddWebReferenceDlg3;  
    IVsAddWebReferenceResult addWebReferenceResult = null;  
    int cancelled = 1;  

    if (awrdlg != null && hierarchy != null)  
    {  
        awrdlg.ShowAddWebReferenceDialog(             hierarchy,             discoverySession,             ServiceReferenceType.SRT_WCFReference,             null,             null,             null,             out addWebReferenceResult,             out cancelled);  
    }  

    if (addWebReferenceResult != null && cancelled == 0)  
    {  
        return addWebReferenceResult.Save() as IVsWCFReferenceGroup;  
    }  
    else  
    {  
         return null;  
    }  
}  

注解

" 添加服务引用 " 对话框允许用户指定元数据下载地址、下载服务元数据,并显示有关服务的信息。

如果成功下载服务元数据,并且用户通过单击 "确定" 关闭对话框,则该服务的使用者 (例如,项目系统) 应调用 Save 返回对象的方法 IVsAddWebReferenceResult 。 这会将新的 WCF 引用添加到项目和要生成的服务代理。 IVsAddWebReferenceResult还可以缓存对象并将其用于稍后创建服务引用。

ShowAddWebReferenceDialog 如果项目不支持存储服务,或 VSPROPID_ServiceReferenceSupported 项目的属性不为 true,则会立即失败。

适用于