DiscoveryClientProtocol.References Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Коллекция ссылок, найденных в разрешенных документах обнаружения.
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
Значение свойства
Класс DiscoveryClientReferenceCollection обнаруженных ссылок.
Примеры
Следующий пример кода представляет собой веб-форму, которая заполняет сведениями о ссылках DataGrid в свойстве References , обнаруженном во время обнаружения веб-служб XML. Метод PopulateGrid
заполняет DataGrid ссылкой, найденной в вызове к DiscoverAny.
Важно!
В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.
<%@ 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>
Комментарии
Коллекция References заполняется во время вызовов Discoverметодов , DiscoverAnyи ResolveAllResolveOneLevel . Если указанный URL-адрес является допустимым документом обнаружения во время вызовов Discover методов и DiscoverAny , этот документ добавляется в References коллекцию вместе со ссылками, найденными в документе обнаружения. Ссылки, добавленные во время вызовов Discover методов и , DiscoverAny не обязательно являются допустимыми документами обнаружения. Во время вызовов к ResolveAll и ResolveOneLevel ссылки в References коллекции проверяются как допустимые документы обнаружения. Если они допустимы и содержат ссылки, они также добавляются в коллекцию References .