DiscoveryClientProtocol.References Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Collection de références trouvées dans les documents de découverte résolus.
public:
property System::Web::Services::Discovery::DiscoveryClientReferenceCollection ^ References { System::Web::Services::Discovery::DiscoveryClientReferenceCollection ^ get(); };
public System.Web.Services.Discovery.DiscoveryClientReferenceCollection References { get; }
member this.References : System.Web.Services.Discovery.DiscoveryClientReferenceCollection
Public ReadOnly Property References As DiscoveryClientReferenceCollection
Valeur de propriété
DiscoveryClientReferenceCollection de références détectées.
Exemples
L’exemple de code suivant est un formulaire web qui remplit un DataGrid avec les détails sur les références dans la References propriété découverte lors d’une découverte de services Web XML. La PopulateGrid
méthode remplit le DataGrid avec les références trouvées dans un appel à DiscoverAny.
Important
Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Web.Services.Discovery" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Data" %>
<HTML>
<HEAD>
<SCRIPT RUNAT="SERVER">
protected void Discover_Click(object Source, EventArgs e)
{
// Specify the URL to discover.
string sourceUrl = DiscoURL.Text;
DiscoveryClientProtocol client = new DiscoveryClientProtocol();
// Use default credentials to access the URL being discovered.
client.Credentials = CredentialCache.DefaultCredentials;
try
{
DiscoveryDocument doc;
// Discover the URL for any discoverable documents.
doc = client.DiscoverAny(sourceUrl);
}
catch ( Exception e2)
{
DiscoveryResultsGrid.Columns.Clear();
Status.Text = e2.Message;
}
// If the discovered document contained, references display them in a data grid.
if (client.References.Count > 0)
PopulateGrid(client);
}
protected void PopulateGrid(DiscoveryClientProtocol client)
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("Reference") );
dt.Columns.Add(new DataColumn("Type") );
// Iterate over the references in the discovered document, displaying their type.
foreach (DictionaryEntry entry in client.References)
{
dr = dt.NewRow();
dr[0] = (string) entry.Key;
dr[1] = entry.Value.GetType();
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
DiscoveryResultsGrid.DataSource = (ICollection) dv;
DiscoveryResultsGrid.DataBind();
}
</SCRIPT>
</HEAD>
<BODY>
<H3> <p align="center"> Discovery Class Sample </p> </H3>
<FORM RUNAT="SERVER">
<hr>
Enter the URL to discover:
<asp:textbox id=DiscoURL Columns=60 runat="SERVER" /><p>
<p align="center"> <asp:Button id=Discover Text="Discover!" onClick="Discover_Click" runat="SERVER"/> </p><p>
<hr>
<asp:label id="Status" runat="SERVER" /><p>
<asp:DataGrid id="DiscoveryResultsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="true"
runat="server">
<HeaderStyle BackColor="DarkBlue" ForeColor="White">
</HeaderStyle>
<AlternatingItemStyle BackColor="LightYellow">
</AlternatingItemStyle>
</asp:DataGrid>
</FORM>
</BODY>
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web.Services.Discovery" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Data" %>
<HTML>
<HEAD>
<SCRIPT RUNAT="SERVER">
Public Sub Discover_Click(Source As Object, e as EventArgs )
' Specify the URL to discover.
Dim sourceUrl as String = DiscoURL.Text
Dim client as DiscoveryClientProtocol = new DiscoveryClientProtocol()
' Use default credentials to access the URL being discovered.
client.Credentials = CredentialCache.DefaultCredentials
Try
Dim doc As DiscoveryDocument
' Discover the URL for any discoverable documents.
doc = client.DiscoverAny(sourceUrl)
Catch e2 As Exception
DiscoveryResultsGrid.Columns.Clear()
Status.Text = e2.Message
End Try
' If the discovered document contained references, display them in a data grid.
If (client.References.Count > 0) Then
'populate our Grid with the discovery results
PopulateGrid(client)
End If
End Sub
Public Sub PopulateGrid(client As DiscoveryClientProtocol)
Dim dt As DataTable = new DataTable()
Dim dr AS DataRow
dt.Columns.Add(new DataColumn("Reference") )
dt.Columns.Add(new DataColumn("Type") )
Dim entry As DictionaryEntry
' Iterate over the references in the discovered document, displaying their type.
For Each entry in client.References
dr = dt.NewRow()
dr(0) = entry.Key
dr(1) = entry.Value.GetType()
dt.Rows.Add(dr)
Next
Dim dv As DataView = new DataView(dt)
DiscoveryResultsGrid.DataSource = dv
DiscoveryResultsGrid.DataBind()
End Sub
</SCRIPT>
</HEAD>
<BODY>
<H3> <p align="center"> Discovery Class Sample </p> </H3>
<FORM RUNAT="SERVER">
<hr>
Enter the URL to discover:
<asp:textbox id=DiscoURL Columns=60 runat="SERVER" /><p>
<p align="center"> <asp:Button id=Discover Text="Discover!" onClick="Discover_Click" runat="SERVER"/> </p><p>
<hr>
<asp:label id="Status" runat="SERVER" /><p>
<asp:DataGrid id="DiscoveryResultsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="true"
runat="server">
<HeaderStyle BackColor="DarkBlue" ForeColor="White">
</HeaderStyle>
<AlternatingItemStyle BackColor="LightYellow">
</AlternatingItemStyle>
</asp:DataGrid>
</FORM>
</BODY>
Remarques
La References collection est remplie pendant les appels aux Discoverméthodes , DiscoverAnyet ResolveAllResolveOneLevel . Pendant les appels aux Discover méthodes et DiscoverAny , si l’URL fournie est un document de découverte valide, ce document est ajouté à la References collection avec les références trouvées dans le document de découverte. Les références ajoutées pendant les appels aux Discover méthodes et ne DiscoverAny sont pas nécessairement des documents de découverte valides. Pendant les appels à ResolveAll et ResolveOneLevel les références dans la References collection sont vérifiés comme étant des documents de découverte valides. S’ils sont valides et contiennent des références, ils sont également ajoutés à la References collection.