OperationContractAttribute 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.
Yöntemin, Windows Communication Foundation (WCF) uygulamasındaki bir hizmet sözleşmesinin parçası olan bir işlemi tanımladığını gösterir.
public ref class OperationContractAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class OperationContractAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type OperationContractAttribute = class
inherit Attribute
Public NotInheritable Class OperationContractAttribute
Inherits Attribute
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, tek bir işlemle basit bir hizmet sözleşmesini gösterir.
using System;
using System.Collections.Generic;
using System.Net.Security;
using System.ServiceModel;
using System.Text;
namespace Microsoft.WCF.Documentation
{
[ServiceContract(Namespace="Microsoft.WCF.Documentation")]
public interface ISampleService{
// This operation specifies an explicit protection level requirement.
[OperationContract(ProtectionLevel=ProtectionLevel.EncryptAndSign)]
string SampleMethod(string msg);
}
class SampleService : ISampleService
{
#region ISampleService Members
public string SampleMethod(string msg)
{
Console.WriteLine("Called with: {0}", msg);
return "The service greets you: " + msg;
}
#endregion
}
}
Imports System.Net.Security
Imports System.ServiceModel
Imports System.Text
Namespace Microsoft.WCF.Documentation
<ServiceContract(Namespace:="Microsoft.WCF.Documentation")> _
Public Interface ISampleService
' This operation specifies an explicit protection level requirement.
<OperationContract(ProtectionLevel:=ProtectionLevel.EncryptAndSign)> _
Function SampleMethod(ByVal msg As String) As String
End Interface
Friend Class SampleService
Implements ISampleService
#Region "ISampleService Members"
Public Function SampleMethod(ByVal msg As String) As String Implements ISampleService.SampleMethod
Console.WriteLine("Called with: {0}", msg)
Return "The service greets you: " & msg
End Function
#End Region
End Class
End Namespace
Aşağıdaki örnek, üç işlemi belirten örtük bir hizmet sözleşmesi uygulayan bir hizmettir. İşlemlerden ikisi, dönüş değeri ne olursa olsun çağırana temel alınan yanıt iletilerini döndüren iki yönlü işlemlerdir. Üçüncü işlem, temel alınan bir gelen ileti olan bir çağrı alır, ancak temel alınan yanıt iletisi döndürmez.
[ServiceContractAttribute]
public class OneAndTwoWay
{
// The client waits until a response message appears.
[OperationContractAttribute]
public int MethodOne (int x, out int y)
{
y = 34;
return 0;
}
// The client waits until an empty response message appears.
[OperationContractAttribute]
public void MethodTwo (int x)
{
return;
}
// The client returns as soon as an outbound message
// is dispatched to the service; no response
// message is generated or sent from the service.
[OperationContractAttribute(IsOneWay=true)]
public void MethodThree (int x)
{
return;
}
}
Açıklamalar
yönteminin OperationContractAttribute bir hizmet sözleşmesinin parçası olarak bir hizmet işlemi uyguladığını belirtmek için yöntemini uygulayın (öznitelik tarafından ServiceContractAttribute belirtilir).
İşlemin OperationContractAttribute yapısını ve meta verilerle ifade edilen değerleri denetlemek için özelliklerini kullanın:
Action özelliği, bu işlemi benzersiz olarak tanımlayan eylemi belirtir. WCF, eylemlerini temel alarak yöntemlere istek iletileri göndermektedir.
AsyncPattern özelliği, işlemin uygulandığını veya bir Begin/End yöntem çifti kullanılarak zaman uyumsuz olarak çağrılabileceğini gösterir.
özelliği özelliğin HasProtectionLevel açıkça ayarlanıp ayarlanmadığını ProtectionLevel gösterir.
IsOneWay özelliği, işlemin yalnızca tek bir giriş iletisinden oluştuğuna işaret eder. İşlemin ilişkili çıkış iletisi yok.
IsInitiating özelliği, bu işlemin bir oturumdaki ilk işlem olup olmadığını belirtir.
özelliği, IsTerminating WCF'nin işlem tamamlandıktan sonra geçerli oturumu sonlandırmaya çalışıp çalışmadığını belirtir.
ProtectionLevel özelliği, çalışma zamanında bir işlemin gerektirdiği ileti düzeyi güvenliği belirtir.
özelliği, ReplyAction işlem için yanıt iletisinin eylemini belirtir.
OperationContractAttribute özniteliği, bir yöntemin bir hizmet sözleşmesindeki bir işlem olduğunu bildirir. Yalnızca ile OperationContractAttribute özniteliklendirilen yöntemler hizmet işlemleri olarak kullanıma sunulur. ile OperationContractAttribute işaretlenmiş yöntemleri olmayan bir hizmet sözleşmesi hiçbir işlemi kullanıma sunmaz.
özelliği, AsyncPattern ve End
<methodName> yöntemleri çiftinin Begin
<methodName> zaman uyumsuz olarak uygulanan tek bir işlem (istemcide veya hizmette) oluşturduğunu gösterir. Bir hizmetin işlemleri zaman uyumsuz olarak uygulama özelliği bir hizmet uygulama ayrıntısıdır ve meta verilerde (Web Hizmetleri Açıklama Dili (WSDL) gibi) gösterilmez.
Benzer şekilde, istemciler hizmet yönteminin nasıl uygulandığından bağımsız olarak işlemleri zaman uyumsuz olarak çağırmayı seçebilir. Bir hizmet yöntemi biraz zaman aldığında ancak bilgileri doğrudan istemciye döndürmesi gerektiğinde istemcide hizmet işlemlerinin zaman uyumsuz olarak çağrılması önerilir. Ayrıntılar için bkz. AsyncPattern.
IsOneWay özelliği, bir yöntemin boş bir temel alınan yanıt iletisi de dahil olmak üzere hiçbir değer döndürmediğini gösterir. Bu yöntem türü bildirimler veya olay stili iletişim için kullanışlıdır. Bu tür yöntemler yanıt iletisi döndüremediğinden yöntemin bildirimi döndürmelidir void
.
Önemli
Bu öznitelikteki bilgi depolarını program aracılığıyla alırken yansıma yerine sınıfını ContractDescription kullanın.
Not
IsOneWay özelliği olarak ayarlanırsa false
(varsayılan), döndüren void
yöntemler bile temel alınan ileti düzeyinde iki yönlü yöntemlerdir. Bu durumda altyapı, çağırana yöntemin döndürdüğünü göstermek için boş bir ileti oluşturur ve gönderir. Bu yaklaşımın kullanılması, uygulamanın ve altyapının istemciye hata bilgilerini (SOAP hatası gibi) geri göndermesini sağlar. true
ayarıIsOneWay, yanıt iletisinin oluşturulmasını ve gönderilmesini önlemenin tek yoludur. Daha fazla bilgi için bkz. Tek Yönlü Hizmetler.
Action ve ReplyAction özellikleri yalnızca SOAP iletilerinin varsayılan eylemini değiştirmek için değil, tanınmayan iletiler için işleyiciler oluşturmak veya doğrudan ileti programlama için eylem eklemeyi devre dışı bırakmak için de kullanılabilir. İstemcilerin IsInitiating diğer işlemlerden önce belirli bir hizmet işlemini çağırmasını önlemek için özelliğini kullanın. İstemciler IsTerminating belirli bir hizmet işlemini çağırdıktan sonra WCF'nin kanalı kapatmasını sağlamak için özelliğini kullanın. Daha fazla bilgi için bkz. Oturumları Kullanma.
özelliği, ProtectionLevel işlem sözleşmesinde işlem iletilerinin imzalı, şifrelenmiş veya imzalı ve şifrelenmiş olup olmadığını belirtmenizi sağlar. Bağlama, sözleşmenin gerektirdiği güvenlik düzeyini sağlayamıyorsa, çalışma zamanında bir özel durum oluşturulur. Daha fazla bilgi için bkz ProtectionLevel . Koruma Düzeyini Anlama.
Oluşturucular
OperationContractAttribute() |
OperationContractAttribute sınıfının yeni bir örneğini başlatır. |
Özellikler
Action |
İstek iletisinin WS-Addressing eylemini alır veya ayarlar. |
AsyncPattern |
Bir işlemin bir hizmet sözleşmesinde methodName ve< |
HasProtectionLevel |
Bu işlem için iletilerin şifrelenip şifrelenmediğini, imzalanması gerektiğini veya her ikisini birden belirten bir değer alır. |
IsInitiating |
Yöntemin sunucuda oturum başlatabilecek bir işlem uygulayıp uygulamadığını belirten bir değer alır veya ayarlar (böyle bir oturum varsa). |
IsOneWay |
İşlemin yanıt iletisi döndürdüğünü belirten bir değer alır veya ayarlar. |
IsTerminating |
Varsa, yanıt iletisi gönderildikten sonra hizmet işleminin sunucunun oturumu kapatmasına neden olup olmadığını belirten bir değer alır veya ayarlar. |
Name |
İşlemin adını alır veya ayarlar. |
ProtectionLevel |
bir işlemin iletilerinin şifrelenmesini, imzalanması veya her ikisini birden yapması gerektiğini belirten bir değer alır veya ayarlar. |
ReplyAction |
İşlemin yanıt iletisi için SOAP eyleminin değerini alır veya ayarlar. |
TypeId |
Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır. (Devralındığı yer: Attribute) |
Yöntemler
Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür. (Devralındığı yer: Attribute) |
GetHashCode() |
Bu örneğe ilişkin karma kodu döndürür. (Devralındığı yer: Attribute) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
IsDefaultAttribute() |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir. (Devralındığı yer: Attribute) |
Match(Object) |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler. (Devralındığı yer: Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır. (Devralındığı yer: Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1). (Devralındığı yer: Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar. (Devralındığı yer: Attribute) |