DiscoveryClientProtocol Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Támogatja az XML-webszolgáltatások programozott meghívását.
public ref class DiscoveryClientProtocol : System::Web::Services::Protocols::HttpWebClientProtocol
public class DiscoveryClientProtocol : System.Web.Services.Protocols.HttpWebClientProtocol
type DiscoveryClientProtocol = class
inherit HttpWebClientProtocol
Public Class DiscoveryClientProtocol
Inherits HttpWebClientProtocol
- Öröklődés
Példák
Az alábbi kódpéldát egy webes űrlap szemlélteti, amely bemutatja, hogyan használhatja az DiscoveryClientProtocol osztályt a névtér többi osztályával együtt az System.Web.Services.Discovery XML-webszolgáltatások felderítésének programozott meghívására. A példakód bemutatja a Discover, DiscoverAny, , DiscoverResolveAll, ResolveOneLevelReadAll és WriteAll metódusok használatát.
Important
Ebben a példában egy szövegdoboz található, amely elfogadja a felhasználói bemenetet, ami potenciális biztonsági fenyegetés. Alapértelmezés szerint ASP.NET weblapok ellenőrzik, hogy a felhasználói bevitel nem tartalmaz-e szkript- vagy HTML-elemeket. További információ: Szkript kihasználása – áttekintés.
<%@ 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;
// Specify the URL to save discovery results to or read from.
string outputDirectory = DiscoDir.Text;
DiscoveryClientProtocol client = new DiscoveryClientProtocol();
// Use default credentials to access the URL being discovered.
client.Credentials = CredentialCache.DefaultCredentials;
try {
DiscoveryDocument doc;
// Check to see if whether the user wanted to read in existing discovery results.
if (DiscoverMode.Value == "ReadAll")
{
DiscoveryClientResultCollection results = client.ReadAll(Path.Combine(DiscoDir.Text,"results.discomap"));
SaveMode.Value = "NoSave";
}
else
{
// Check to see if whether the user wants the capability to discover any kind of discoverable document.
if (DiscoverMode.Value == "DiscoverAny")
{
doc = client.DiscoverAny(sourceUrl);
}
else
// Discover only discovery documents, which might contain references to other types of discoverable documents.
{
doc = client.Discover(sourceUrl);
}
// Check to see whether the user wants to resolve all possible references from the supplied URL.
if (ResolveMode.Value == "ResolveAll")
client.ResolveAll();
else
{
// Check to see whether the user wants to resolve references nested more than one level deep.
if (ResolveMode.Value == "ResolveOneLevel")
client.ResolveOneLevel();
else
Status.Text = String.Empty;
}
}
}
catch ( Exception e2)
{
DiscoveryResultsGrid.Columns.Clear();
Status.Text = e2.Message;
}
// If documents were discovered, display the results in a data grid.
if (client.Documents.Count > 0)
PopulateGrid(client);
// If the user also asked to have the results saved to the Web server, do so.
if (SaveMode.Value == "Save")
{
DiscoveryClientResultCollection results = client.WriteAll(outputDirectory, "results.discomap");
Status.Text = "The following file holds the links to each of the discovery results: <b>" +
Path.Combine(outputDirectory,"results.discomap") + "</b>";
}
}
protected void PopulateGrid(DiscoveryClientProtocol client)
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("Discovery Document"));
dt.Columns.Add(new DataColumn("References"));
dt.Columns.Add(new DataColumn("Type"));
foreach (DictionaryEntry entry in client.Documents)
{
dr = dt.NewRow();
dr[0] = (string) entry.Key;
dr[2] = entry.Value.GetType();
dt.Rows.Add(dr);
if (entry.Value is DiscoveryDocument)
{
DiscoveryDocument discoDoc = (DiscoveryDocument) entry.Value;
foreach (DiscoveryReference discoref in discoDoc.References)
{
dr = dt.NewRow();
dr[1] = discoref.Url;
dr[2] = discoref.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>
Discovery Mode:
<select id="DiscoverMode" size=1 runat="SERVER">
<option Value="DiscoverAny">Discover any of the discovery types</option>
<option Value="Discover">Discover just discovery documents</option>
<option Value="ReadAll">Read in saved discovery results</option>
</select> <p>
Resolve References Mode:
<select id="ResolveMode" size=1 runat="SERVER">
<option Value="ResolveAll">Resolve all references</option>
<option Value="ResolveOneLevel">Resolve references only in discovery documents within the supplied URL</option>
<option Value="ResolveNone">Do not resolve references</option>
</select> <p>
Save Results Mode:
<select id="SaveMode" size=1 runat="SERVER">
<option Value="NoSave">Do not save any of the discovery documents found locally</option>
<option Value="Save">Save the discovery documents found locally</option>
</select> <p>
Enter the directory to Read/Save the Discovery results:
<asp:textbox id=DiscoDir 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
' Specify the URL to save discovery results to or read from.
Dim outputDirectory As String = DiscoDir.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
' Check to see whether the user wanted to read in existing discovery results.
If (DiscoverMode.Value = "ReadAll") Then
Dim results As DiscoveryClientResultCollection
results = client.ReadAll(Path.Combine(DiscoDir.Text,"results.discomap"))
SaveMode.Value = "NoSave"
Else
' Check to see whether the user user wants the capability to discover any kind of discoverable document.
If (DiscoverMode.Value = "DiscoverAny") Then
doc = client.DiscoverAny(sourceUrl)
Else
' Discover only discovery documents, which might contain references to other types of discoverable documents.
doc = client.Discover(sourceUrl)
End If
' Check to see whether the user wants to resolve all possible references from the supplied URL.
If (ResolveMode.Value = "ResolveAll") Then
client.ResolveAll()
' Check to see whether the user wants to resolve references nested more than one level deep.
ElseIf (ResolveMode.Value = "ResolveOneLevel") Then
client.ResolveOneLevel()
Else
Status.Text = String.Empty
End If
End If
Catch e2 As Exception
DiscoveryResultsGrid.Columns.Clear()
Status.Text = e2.Message
End Try
' If documents were discovered, display the results in a data grid.
If (client.Documents.Count > 0) Then
'populate our Grid with the discovery results.
PopulateGrid(client)
End If
' If the user also asked to have the results saved to the Web server, do so.
If (SaveMode.Value = "Save") Then
Dim results As DiscoveryClientResultCollection
results = client.WriteAll(outputDirectory, "results.discomap")
Status.Text = "The following file holds the links to each of the discovery results: <b>" + _
Path.Combine(outputDirectory,"results.discomap") + "</b>"
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("Discovery Document") )
dt.Columns.Add(new DataColumn("References") )
dt.Columns.Add(new DataColumn("Type") )
Dim entry As DictionaryEntry
For Each entry in client.Documents
dr = dt.NewRow()
dr(0) = entry.Key
dr(2) = entry.Value.GetType()
dt.Rows.Add(dr)
If TypeOf entry.Value Is DiscoveryDocument Then
Dim discoDoc As DiscoveryDocument = entry.Value
Dim discoref As DiscoveryReference
For Each discoref in discoDoc.References
dr = dt.NewRow()
dr(1) = discoref.Url
dr(2) = discoref.GetType()
dt.Rows.Add(dr)
Next
End If
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>
Discovery Mode:
<select id="DiscoverMode" size=1 runat="SERVER">
<option Value="DiscoverAny">Discover any of the discovery types</option>
<option Value="Discover">Discover just discovery documents</option>
<option Value="ReadAll">Read in saved discovery results</option>
</select> <p>
Resolve References Mode:
<select id="ResolveMode" size=1 runat="SERVER">
<option Value="ResolveAll">Resolve all references</option>
<option Value="ResolveOneLevel">Resolve references only in discovery documents within the supplied URL</option>
<option Value="ResolveNone">Do not resolve references</option>
</select> <p>
Save Results Mode:
<select id="SaveMode" size=1 runat="SERVER">
<option Value="NoSave">Do not save any of the discovery documents found locally</option>
<option Value="Save">Save the discovery documents found locally</option>
</select> <p>
Enter the directory to Read/Save the Discovery results:
<asp:textbox id=DiscoDir 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>
Megjegyzések
Az XML-webszolgáltatás-felderítés egy vagy több, az elérhető XML-webszolgáltatásokat leíró kapcsolódó dokumentum keresésének vagy felderítésének folyamata. Az XML-webszolgáltatások felderítése révén az XML Web Service-ügyfelek megismerhetik az elérhető XML-webszolgáltatásokat egy adott URL-címen, és hogyan használhatják őket. Az XML-webszolgáltatások felderítése abból a helyszínről működik, hogy már beszerezte az URL-címet egy felderítési dokumentumhoz, esetleg egy címtárszolgáltatáson keresztül, azonban nem rendelkezik a kínált XML-webszolgáltatások részleteivel. Az XML-webszolgáltatások felderítése révén egy adott URL-címen található XML-webszolgáltatások részleteit fedezheti fel DiscoveryDocument .
Egy XML-webszolgáltatás-ügyfél elindítja az XML-webszolgáltatások felderítését egy URL-cím megadásával a metódusok vagy Discover a DiscoverAny metódusok számára. Ez az URL általában egy felderítési dokumentumra hivatkozik, amely egy vagy több XML-webszolgáltatást leíró dokumentumra hivatkozik, amelyek hozzáadódnak a References tulajdonsághoz. Ezen a ponton csak az a dokumentum lesz letöltve és ellenőrizve, hogy érvényes információkra mutasson az XML-webszolgáltatásokról. A dokumentumban található hivatkozások azonban ebben a szakaszban nem lesznek ellenőrizve. Ehelyett hozzáadja őket a References tulajdonsághoz. A hivatkozások érvényességének ellenőrzéséhez hívja meg azokat a ResolveAll metódusokat vagy ResolveOneLevel metódusokat, amelyek érvényes hivatkozott dokumentumokat adnak hozzá a Documents tulajdonsághoz. Végül, ha egy ügyfél lemezre szeretné menteni a felderítési eredményeket, hívja meg a metódust WriteAll .
Ha az XML-webszolgáltatások felderítéséhez nincs szükség programozott hozzáférésre, a Windows SDK a Web Services Discovery eszközt (Disco.exe) irányítja az XML-webszolgáltatások parancssoron belüli felderítéséhez. További részletekért lásd: Web Services Discovery Tool (Disco.exe).
Konstruktorok
| Név | Description |
|---|---|
| DiscoveryClientProtocol() |
Inicializálja a DiscoveryClientProtocol osztály új példányát. |
Tulajdonságok
| Név | Description |
|---|---|
| AdditionalInformation |
A felderítési dokumentumban található hivatkozásokon kívül információkat is lekér. |
| AllowAutoRedirect |
Lekérdezi vagy beállítja, hogy az ügyfél automatikusan követi-e a kiszolgáló átirányításait. (Öröklődés forrása HttpWebClientProtocol) |
| CanRaiseEvents |
Beolvas egy értéket, amely jelzi, hogy az összetevő képes-e eseményt létrehozni. (Öröklődés forrása Component) |
| ClientCertificates |
Lekéri az ügyféltanúsítványok gyűjteményét. (Öröklődés forrása HttpWebClientProtocol) |
| ConnectionGroupName |
Lekéri vagy beállítja a kérés kapcsolatcsoportjának nevét. (Öröklődés forrása WebClientProtocol) |
| Container |
Lekéri a IContainer .Component (Öröklődés forrása Component) |
| CookieContainer |
Lekéri vagy beállítja a cookie-k gyűjtését. (Öröklődés forrása HttpWebClientProtocol) |
| Credentials |
Lekéri vagy beállítja a biztonsági hitelesítő adatokat az XML Web Service-ügyfélhitelesítéshez. (Öröklődés forrása WebClientProtocol) |
| DesignMode |
Olyan értéket kap, amely jelzi, hogy az Component aktuálisan tervezési módban van-e. (Öröklődés forrása Component) |
| Documents |
Lekéri a felderítési dokumentumok gyűjteményét. |
| EnableDecompression |
Lekéri vagy beállít egy értéket, amely jelzi, hogy engedélyezve van-e a dekompresszió ehhez HttpWebClientProtocola beállításhoz. (Öröklődés forrása HttpWebClientProtocol) |
| Errors |
Lekéri az osztályból a metódus meghívása során előforduló kivételek gyűjteményét. |
| Events |
Lekéri az ehhez Componentcsatolt eseménykezelők listáját. (Öröklődés forrása Component) |
| PreAuthenticate |
Lekérdezi vagy beállítja, hogy engedélyezve van-e az előzetes hitelesítés. (Öröklődés forrása WebClientProtocol) |
| Proxy |
Lekéri vagy beállítja a proxyadatokat egy XML-webszolgáltatás-kérés tűzfalon keresztüli létrehozásához. (Öröklődés forrása HttpWebClientProtocol) |
| References |
A feloldott felderítési dokumentumokban található hivatkozások gyűjteménye. |
| RequestEncoding |
Az Encoding ügyfél kérésének az XML-webszolgáltatáshoz való küldéséhez használt. (Öröklődés forrása WebClientProtocol) |
| Site |
Lekéri vagy megadja a ISite értékét a Component-hez. (Öröklődés forrása Component) |
| Timeout |
Azt az időt jelzi, amikor egy XML-webszolgáltatás-ügyfél megvárja a szinkron XML-webszolgáltatás-kérésre adott választ (ezredmásodpercben). (Öröklődés forrása WebClientProtocol) |
| UnsafeAuthenticatedConnectionSharing |
Lekéri vagy beállít egy értéket, amely jelzi, hogy engedélyezve van-e a kapcsolatmegosztás, ha az ügyfél NTLM-hitelesítéssel csatlakozik az XML-webszolgáltatást futtató webkiszolgálóhoz. (Öröklődés forrása HttpWebClientProtocol) |
| Url |
Lekéri vagy beállítja az ügyfél által kért XML-webszolgáltatás alap URL-címét. (Öröklődés forrása WebClientProtocol) |
| UseDefaultCredentials |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a Credentials tulajdonságot a tulajdonság értékére DefaultCredentials szeretné-e állítani. (Öröklődés forrása WebClientProtocol) |
| UserAgent |
Lekéri vagy beállítja az egyes kérésekkel elküldött felhasználói ügynök fejlécének értékét. (Öröklődés forrása HttpWebClientProtocol) |
Metódusok
| Név | Description |
|---|---|
| Abort() |
Megszakítja egy XML-webszolgáltatás-metódusra irányuló kérést. (Öröklődés forrása WebClientProtocol) |
| CancelAsync(Object) |
Megszakítja az XML-webszolgáltatás metódusának aszinkron hívását, kivéve, ha a hívás már befejeződött. (Öröklődés forrása HttpWebClientProtocol) |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| Discover(String) |
Felderíti a megadott URL-címet annak megállapításához, hogy felderítési dokumentum-e. |
| DiscoverAny(String) |
Felderíti a megadott URL-címet annak megállapításához, hogy felderítési dokumentumról, szolgáltatásleírásról vagy XSD-sémáról van-e szó. |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást Component. (Öröklődés forrása Component) |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által Component használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat. (Öröklődés forrása Component) |
| Download(String, String) |
Letölti a felderítési dokumentumot a megadott URL-címen egy Stream objektumba, és beállítja a |
| Download(String) |
Letölti a felderítési dokumentumot a megadott URL-címen egy Stream objektumba. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetService(Type) |
Olyan objektumot ad vissza, amely az általa vagy annak által ComponentContainernyújtott szolgáltatást jelöli. (Öröklődés forrása Component) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| GetWebRequest(Uri) |
Létrehoz egy adott WebRequest URI-t. (Öröklődés forrása HttpWebClientProtocol) |
| GetWebResponse(WebRequest, IAsyncResult) |
Aszinkron kérés válaszát adja vissza egy XML Web Service-metódusnak. (Öröklődés forrása HttpWebClientProtocol) |
| GetWebResponse(WebRequest) |
Egy xml-webszolgáltatás-metódusra irányuló szinkron kérés válaszát adja vissza. (Öröklődés forrása HttpWebClientProtocol) |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| LoadExternals() |
Elavult.
Arra utasítja az DiscoveryClientProtocol objektumot, hogy töltse be a külső hivatkozásokat. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| ReadAll(String) |
Beolvassa egy fájlba, amely a mentett felderítési dokumentumok térképét tartalmazza, amelyek feltöltik azokat Documents és References a tulajdonságokat, felderítési dokumentumokkal, XML-sémadefiníciós (XSD) sémákkal és a fájlban hivatkozott szolgáltatásleírásokkal. |
| ResolveAll() |
Feloldja a felderítési dokumentumokra, az XML-sémadefiníciós (XSD) sémákra és a tulajdonság szolgáltatásleírására, valamint a References hivatkozott felderítési dokumentumokban található hivatkozásokra mutató hivatkozásokat. |
| ResolveOneLevel() |
Feloldja a felderítési dokumentumokra, az XML-sémadefiníciós (XSD)-sémákra és a szolgáltatásleírásokra Referencesmutató összes hivatkozást, valamint a felderítési dokumentumokban található hivatkozásokat. |
| ToString() |
String A ( ha van) nevet tartalmazó értéket Componentad vissza. Ezt a módszert nem szabad felülírni. (Öröklődés forrása Component) |
| WriteAll(String, String) |
A tulajdonságban Documents található összes felderítési dokumentumot, XML-sémadefiníciós (XSD) sémát és szolgáltatásleírást a megadott könyvtárba írja, és létrehoz egy fájlt az adott könyvtárban. |
esemény
| Név | Description |
|---|---|
| Disposed |
Akkor fordul elő, ha az összetevőt a metódus hívása megsemmisíti Dispose() . (Öröklődés forrása Component) |