WebClientProtocol 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.
ASP.NET kullanılarak oluşturulan tüm XML Web hizmeti istemci proxy'leri için temel sınıfı belirtir.
public ref class WebClientProtocol abstract : System::ComponentModel::Component
public abstract class WebClientProtocol : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class WebClientProtocol : System.ComponentModel.Component
type WebClientProtocol = class
inherit Component
[<System.Runtime.InteropServices.ComVisible(true)>]
type WebClientProtocol = class
inherit Component
Public MustInherit Class WebClientProtocol
Inherits Component
- Devralma
- Türetilmiş
- Öznitelikler
Örnekler
Aşağıdaki örnek, Math
adlı bir XML Web hizmetini çağıran bir ASP.NET Web Formudur.
EnterBtn_Click
işlevinde, Web Formu uzak XML Web hizmeti yöntemini çağırmadan önce ara sunucu sınıfında ara sunucu bilgilerini ve istemci kimlik bilgilerini ayarlar.
Ö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#" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E)
{
MyMath.Math math = new MyMath.Math();
// Set the client-side credentials using the Credentials property.
ICredentials credentials = new NetworkCredential("Joe","mydomain","password");
math.Credentials = credentials;
// Do not allow the server to redirect the request.
math.AllowAutoRedirect = false;
int total = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text));
Total.Text = "Total: " + total.ToString();
}
</script>
<body>
<form action="MathClient.aspx" runat=server>
Enter the two numbers you want to add and then press the Total button.
<p>
Number 1: <asp:textbox id="Num1" runat=server/> +
Number 2: <asp:textbox id="Num2" runat=server/> =
<asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
<p>
<asp:label id="Total" runat=server/>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(src As Object, e As EventArgs)
Dim math As New MyMath.Math()
' Set the client-side credentials using the Credentials property.
Dim credentials As New NetworkCredential("Joe", "password", "mydomain")
math.Credentials = credentials
' Do not allow the server to redirect the request.
math.AllowAutoRedirect = False
Dim iTotal As Integer = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text))
Total.Text = "Total: " & iTotal.ToString()
End Sub
</script>
<body>
<form action="MathClient.aspx" runat=server>
Enter the two numbers you want to add and then press the Total button.
<p>
Number 1: <asp:textbox id="Num1" runat=server/> +
Number 2: <asp:textbox id="Num2" runat=server/> =
<asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
<p>
<asp:label id="Total" runat=server/>
</form>
</body>
</html>
Açıklamalar
WebClientProtocol sınıfının özellikleri, XML Web hizmeti isteğini ve yanıtını iletmek için kullanılan aktarım davranışını denetlemek için kullanılır. Bu sınıf üzerindeki özellikler, WebRequestüzerinde bulunan özelliklerle eşler. HttpWebRequestgibi WebRequesttüretilen sınıfların örnekleri, ASP.NET kullanılarak oluşturulan XML Web hizmetleri için aktarım mekanizması olarak kullanılır.
XML Web hizmetiyle iletişim kurmak için, çağırmak istediğiniz XML Web hizmeti için dolaylı veya doğrudan WebClientProtocol türetilen bir ara sunucu sınıfı oluşturmanız gerekir. Ara sunucu sınıfını el ile oluşturmak yerine, Wsdl.exe aracını kullanarak belirli bir XML Web hizmetinin hizmet açıklaması için ara sunucu sınıfı oluşturabilirsiniz. WebClientProtocol istemci proxy'niz için temel sınıf olduğundan, özelliklerini proxy sınıflarınızda bulursunuz. Bu özellikler, temel alınan aktarımın istek davranışını denetlemek için kullanışlıdır. Örneğin, kimliği doğrulanmış XML Web hizmetlerini çağırmak için Credentials özelliğini kullanın. WebClientProtocol özelliklerinin çoğu, Web isteğinde bulunmak için kullanılan WebRequest nesnesini başlatmak için kullanılır.
Oluşturucular
WebClientProtocol() |
WebClientProtocol sınıfının yeni bir örneğini başlatır. |
Özellikler
CanRaiseEvents |
Bileşenin olay oluşturup oluşturamayacağını belirten bir değer alır. (Devralındığı yer: Component) |
ConnectionGroupName |
İstek için bağlantı grubunun adını alır veya ayarlar. |
Container |
Componentiçeren IContainer alır. (Devralındığı yer: Component) |
Credentials |
XML Web hizmeti istemci kimlik doğrulaması için güvenlik kimlik bilgilerini alır veya ayarlar. |
DesignMode |
Component şu anda tasarım modunda olup olmadığını gösteren bir değer alır. (Devralındığı yer: Component) |
Events |
Bu Componenteklenen 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. |
RequestEncoding |
XML Web hizmetine istemci isteğinde bulunmak için kullanılan Encoding. |
Site |
Component ISite alır veya ayarlar. (Devralındığı yer: Component) |
Timeout |
XML Web hizmeti istemcisinin zaman uyumlu XML Web hizmeti isteğinin yanıtlanmasını beklediği zamanı gösterir (milisaniye cinsinden). |
Url |
İstemcinin istediği XML Web hizmetinin temel URL'sini alır veya ayarlar. |
UseDefaultCredentials |
Credentials özelliğinin DefaultCredentials özelliğinin değerine ayarlanıp ayarlanmayacağını belirten bir değer alır veya ayarlar. |
Yöntemler
Abort() |
XML Web hizmeti yöntemine yönelik isteği iptal eder. |
AddToCache(Type, Object) |
Önbelleğe istemci protokolü işleyicisinin bir örneğini ekleyin. |
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) |
Dispose() |
Componenttarafı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 isteğe bağlı olarak yönetilen kaynakları serbest bırakır. (Devralındığı yer: Component) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetFromCache(Type) |
Önbellekten istemci protokolü işleyicisinin bir örneğini alır. |
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) |
Component veya Containertarafından sağlanan bir hizmeti temsil eden bir nesnesi döndürür. (Devralındığı yer: Component) |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
GetWebRequest(Uri) |
Belirtilen |
GetWebResponse(WebRequest, IAsyncResult) |
Xml Web hizmeti yöntemine zaman uyumsuz istekten bir yanıt döndürür. Bu korumalı yöntem, zaman uyumsuz bir XML Web hizmeti isteğinden yanıt almak için XML Web hizmeti istemci altyapısı tarafından çağrılır. |
GetWebResponse(WebRequest) |
Xml Web hizmeti yöntemine zaman uyumlu istekten bir yanıt döndürür. |
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) |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnesinin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
ToString() |
varsa, Componentadını içeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: Component) |
Ekinlikler
Disposed |
Bileşen Dispose() yöntemine yapılan bir çağrıyla atıldığında gerçekleşir. (Devralındığı yer: Component) |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu sınıftaki özellikler, her XML Web hizmeti yöntemi çağrısı için yeni bir WebRequest nesnesi örneğine kopyalanır. Aynı WebClientProtocol örneğindeki XML Web hizmeti yöntemlerini farklı iş parçacıklarından aynı anda çağırabilirsiniz ancak özelliklerin tutarlı bir anlık görüntüsünün WebRequest nesnesine aktarılmasını sağlamak için eşitleme yapılmaz. Bu nedenle, özellikleri değiştirmeniz ve farklı iş parçacıklarından eşzamanlı yöntem çağrıları yapmanız gerekiyorsa, XML Web hizmeti proxy'sinin farklı bir örneğini kullanmanız veya kendi eşitlemenizi sağlamanız gerekir.