DiscoveryClientProtocol Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
XML Web hizmetleri bulma işlemini program aracılığıyla çağırma desteği sağlar.
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
- Devralma
Örnekler
Aşağıdaki kod örneği, XML Web hizmetleri bulma işlemini program aracılığıyla çağırmak için sınıfın DiscoveryClientProtocol ad alanında System.Web.Services.Discovery diğer sınıflarla birlikte nasıl kullanılacağını gösteren bir Web Formudur. Kod örneği , , DiscoverAny, Discover, ReadAllResolveAllResolveOneLevelve WriteAll yöntemlerinin kullanılmasını Discovergösterir.
Önemli
Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz . Betik Açıklarına Genel Bakış.
<%@ 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>
Açıklamalar
XML Web hizmeti bulma, kullanılabilir XML Web hizmetlerini açıklayan bir veya daha fazla ilgili belgeyi bulma veya bulma işlemidir. XML Web hizmeti istemcilerinin, belirli bir URL'deki kullanılabilir XML Web hizmetleri ve bunların nasıl kullanılacağı hakkında bilgi edinen XML Web hizmetleri bulma yoluyla yapılır. XML Web hizmetleri bulma, büyük olasılıkla bir dizin hizmeti aracılığıyla bulma belgesinin URL'sini zaten aldığınız şirket içinden çalışır, ancak sunulan XML Web hizmetleriyle ilgili ayrıntılara sahip olmazsınız. XML Web hizmetleri bulma aracılığıyla, belirli bir DiscoveryDocument URL'de listelenen XML Web hizmetleriyle ilgili ayrıntıları bulabilirsiniz.
XML Web hizmeti istemcisi, veya DiscoverAny yöntemlerine bir URL sağlayarak XML Web hizmetleri bulma işlemini Discover başlatır. Genellikle, bu URL bir bulma belgesine başvurur ve bu belge de özelliğine References eklenen bir veya daha fazla XML Web hizmetini açıklayan belgeleri ifade eder. Bu noktada, XML Web hizmetleri hakkındaki geçerli bilgilere işaret etmek için yalnızca bu belge indirilir ve doğrulanır. Ancak, bu belgede yer alan başvurular bu aşamada doğrulanmaz. Bunun yerine özelliğine References eklenirler. Başvuruların geçerli olduğunu doğrulamak için, özelliğine ResolveAll geçerli başvurulan belgeler ekleyen veya ResolveOneLevel yöntemlerini çağırın Documents . Son olarak, bir istemci bulma sonuçlarını diske kaydetmek istiyorsa yöntemini çağırın WriteAll .
XML Web hizmetleri bulma işlemine programlı erişim gerekmiyorsa, Windows SDK bir komut isteminde XML Web hizmetlerini bulmak için Web Hizmetleri Bulma aracını (Disco.exe) iletir. Diğer ayrıntılar için bkz. Web Hizmetleri Bulma Aracı (Disco.exe).
Oluşturucular
DiscoveryClientProtocol() |
DiscoveryClientProtocol sınıfının yeni bir örneğini başlatır. |
Özellikler
AdditionalInformation |
Bulma belgesinde bulunan başvurulara ek olarak bilgi alır. |
AllowAutoRedirect |
İstemcinin sunucu yeniden yönlendirmelerini otomatik olarak takip edip etmediğini alır veya ayarlar. (Devralındığı yer: HttpWebClientProtocol) |
CanRaiseEvents |
Bileşenin bir olay oluşturup oluşturamayacağını belirten bir değer alır. (Devralındığı yer: Component) |
ClientCertificates |
İstemci sertifikaları koleksiyonunu alır. (Devralındığı yer: HttpWebClientProtocol) |
ConnectionGroupName |
İstek için bağlantı grubunun adını alır veya ayarlar. (Devralındığı yer: WebClientProtocol) |
Container |
öğesini IContainer içeren öğesini Componentalır. (Devralındığı yer: Component) |
CookieContainer |
Tanımlama bilgileri koleksiyonunu alır veya ayarlar. (Devralındığı yer: HttpWebClientProtocol) |
Credentials |
XML Web hizmeti istemci kimlik doğrulaması için güvenlik kimlik bilgilerini alır veya ayarlar. (Devralındığı yer: WebClientProtocol) |
DesignMode |
öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır. (Devralındığı yer: Component) |
Documents |
Bulma belgelerinden oluşan bir koleksiyon alır. |
EnableDecompression |
Bu HttpWebClientProtocoliçin açmanın etkinleştirilip etkinleştirilmediğini belirten bir değer alır veya ayarlar. (Devralındığı yer: HttpWebClientProtocol) |
Errors |
Bu sınıftan yöntem çağrılırken oluşan özel durumlar koleksiyonunu alır. |
Events |
Bu Componentöğesine eklenen olay işleyicilerinin listesini alır. (Devralındığı yer: Component) |
PreAuthenticate |
Ön kimlik doğrulamasının etkinleştirilip etkinleştirilmediğini alır veya ayarlar. (Devralındığı yer: WebClientProtocol) |
Proxy |
Güvenlik duvarı üzerinden XML Web hizmeti isteği yapmak için ara sunucu bilgilerini alır veya ayarlar. (Devralındığı yer: HttpWebClientProtocol) |
References |
Çözümlenen bulma belgelerinde bulunan başvuru koleksiyonu. |
RequestEncoding |
Encoding XML Web hizmetine istemci isteğinde bulunmak için kullanılır. (Devralındığı yer: WebClientProtocol) |
Site |
öğesini alır veya ayarlar ISiteComponent. (Devralındığı yer: Component) |
Timeout |
XML Web hizmeti istemcisinin zaman uyumlu XML Web hizmeti isteğinin yanıtlanmasını beklediği süreyi gösterir (milisaniye cinsinden). (Devralındığı yer: WebClientProtocol) |
UnsafeAuthenticatedConnectionSharing |
İstemci, XML Web hizmetini barındıran Web sunucusuna bağlanmak için NTLM kimlik doğrulamasını kullandığında bağlantı paylaşımının etkinleştirilip etkinleştirilmediğini belirten bir değer alır veya ayarlar. (Devralındığı yer: HttpWebClientProtocol) |
Url |
İstemcinin istediği XML Web hizmetinin temel URL'sini alır veya ayarlar. (Devralındığı yer: WebClientProtocol) |
UseDefaultCredentials |
Özelliğin özelliğinin değerine ayarlanıp ayarlanmayacağını Credentials belirten bir değer DefaultCredentials alır veya ayarlar. (Devralındığı yer: WebClientProtocol) |
UserAgent |
Her istekle birlikte gönderilen kullanıcı aracısı üst bilgisinin değerini alır veya ayarlar. (Devralındığı yer: HttpWebClientProtocol) |
Yöntemler
Abort() |
XML Web hizmeti yöntemine yönelik isteği iptal eder. (Devralındığı yer: WebClientProtocol) |
CancelAsync(Object) |
Çağrı zaten tamamlanmadığı sürece XML Web hizmeti yöntemine yönelik zaman uyumsuz çağrıyı iptal eder. (Devralındığı yer: HttpWebClientProtocol) |
CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
Discover(String) |
Bir bulma belgesi olup olmadığını belirlemek için sağlanan URL'yi bulur. |
DiscoverAny(String) |
Bir bulma belgesi, hizmet açıklaması veya XML Şema Tanımı (XSD) şeması olup olmadığını belirlemek için sağlanan URL'yi bulur. |
Dispose() |
Component tarafından kullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Component) |
Dispose(Boolean) |
Component tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır. (Devralındığı yer: Component) |
Download(String) |
Sağlanan URL'deki bulma belgesini bir Stream nesneye indirir. |
Download(String, String) |
Sağlanan URL'deki bulma belgesini bir Stream nesneye indirir ve parametresini bulma belgesinin MIME kodlamasına ayarlar |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
GetService(Type) |
veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür. (Devralındığı yer: Component) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
GetWebRequest(Uri) |
Belirtilen URI için bir WebRequest oluşturur. (Devralındığı yer: HttpWebClientProtocol) |
GetWebResponse(WebRequest) |
Xml Web hizmeti yöntemine zaman uyumlu istekten bir yanıt döndürür. (Devralındığı yer: HttpWebClientProtocol) |
GetWebResponse(WebRequest, IAsyncResult) |
Xml Web hizmeti yöntemine zaman uyumsuz istekten bir yanıt döndürür. (Devralındığı yer: HttpWebClientProtocol) |
InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
LoadExternals() |
Geçersiz.
Nesnesine DiscoveryClientProtocol dış başvuruları yüklemesini emreder. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
ReadAll(String) |
bulma belgeleri, XML Şema Tanımı (XSD) şemaları ve dosyada başvurulan hizmet açıklamaları ile ve References özelliklerini dolduran Documents kaydedilmiş bulma belgelerinin eşlemesini içeren bir dosyada okur. |
ResolveAll() |
Bulma belgelerine, XML Şema Tanımı (XSD) şemalarına, özellikteki References hizmet açıklamalarına ve başvurulan bulma belgelerinde bulunan başvurulara yapılan tüm başvuruları çözümler. |
ResolveOneLevel() |
bulma belgelerine, içindeki XML Şema Tanımı (XSD) şemalarına ve hizmet açıklamalarına Referencesyapılan tüm başvuruların yanı sıra bu bulma belgelerinde bulunan başvuruları çözümler. |
ToString() |
Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: Component) |
WriteAll(String, String) |
Özelliğindeki Documents tüm bulma belgelerini, XML Şema Tanımı (XSD) şemalarını ve Hizmet Açıklamalarını sağlanan dizine yazar ve bu dizinde bir dosya oluşturur. |
Ekinlikler
Disposed |
Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir. (Devralındığı yer: Component) |