OperationContractAttribute 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.
Azt jelzi, hogy egy metódus egy szolgáltatásszerződés részét képező műveletet határoz meg egy Windows kommunikációs alaprendszer (WCF) alkalmazásban.
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
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód egy egyszerű szolgáltatási szerződést mutat be egy művelettel.
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
Az alábbi példa egy olyan szolgáltatás, amely egy implicit szolgáltatási szerződést valósít meg, amely három műveletet határoz meg. A műveletek közül kettő kétirányú művelet, amely az alapul szolgáló válaszüzeneteket adja vissza a hívónak, függetlenül attól, hogy mi a visszatérési érték. A harmadik művelet fogad egy hívást, egy mögöttes bejövő üzenetet, de nem ad vissza mögöttes válaszüzenetet.
[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;
}
}
Megjegyzések
Alkalmazza a OperationContractAttribute metódust arra, hogy jelezze, hogy a metódus egy szolgáltatási szerződés részeként valósít meg egy szolgáltatási műveletet (amelyet egy ServiceContractAttribute attribútum határoz meg).
A tulajdonságok segítségével OperationContractAttribute szabályozhatja a művelet szerkezetét és a metaadatokban kifejezett értékeket:
A Action tulajdonság azt a műveletet adja meg, amely egyedileg azonosítja ezt a műveletet. A WCF a műveletük alapján küld üzeneteket a metódusok számára.
A AsyncPattern tulajdonság azt jelzi, hogy a művelet implementálva van, vagy aszinkron módon meghívható egy Begin/End metóduspár használatával.
A HasProtectionLevel tulajdonság azt jelzi, hogy a ProtectionLevel tulajdonság explicit módon lett-e beállítva.
A IsOneWay tulajdonság azt jelzi, hogy a művelet csak egyetlen bemeneti üzenetből áll. A művelethez nincs társított kimeneti üzenet.
A IsInitiating tulajdonság azt határozza meg, hogy ez a művelet lehet-e a munkamenet kezdeti művelete.
A IsTerminating tulajdonság azt határozza meg, hogy a WCF megkísérli-e megszakítani az aktuális munkamenetet a művelet befejezése után.
A ProtectionLevel tulajdonság azt az üzenetszintű biztonságot adja meg, amelyet egy művelet futásidőben igényel.
A ReplyAction tulajdonság a művelet válaszüzenetének műveletét adja meg.
Az OperationContractAttribute attribútum azt deklarálja, hogy a metódus egy szolgáltatásszerződésben szereplő művelet. Csak azokkal OperationContractAttribute a metódusokkal társított metódusok vannak közzétéve szolgáltatásműveletként. Egy olyan szolgáltatási szerződés, amely nem rendelkezik a műveletekkel megjelölt metódusokkal OperationContractAttribute .
A AsyncPattern tulajdonság azt jelzi, hogy a Begin< és>End< metóduspár > egyetlen, aszinkron módon implementált műveletet alkot (akár az ügyfélen, akár a szolgáltatáson). A szolgáltatás aszinkron módon történő implementálásának képessége a szolgáltatás implementálásának részlete, és nem jelenik meg metaadatokban (például Web Services Description Language (WSDL)).
Hasonlóképpen az ügyfelek dönthetnek úgy, hogy a szolgáltatásmetódus implementálásától függetlenül aszinkron módon meghívják a műveleteket. A szolgáltatásműveletek aszinkron meghívása az ügyfélben akkor ajánlott, ha egy szolgáltatásmetódus némi időt vesz igénybe, de az adatokat közvetlenül az ügyfélnek kell visszaadnia. További részletekért lásd: AsyncPattern.
A IsOneWay tulajdonság azt jelzi, hogy egy metódus egyáltalán nem ad vissza értéket, beleértve egy üres mögöttes válaszüzenetet sem. Ez a módszer az értesítések és az eseménystílusú kommunikáció szempontjából hasznos. Az ilyen típusú metódusok nem küldhetnek válaszüzenetet, ezért a metódus deklarációjának vissza kell térnie void.
Important
Ha programozott módon beolvassa az adattárat ebben az attribútumban, használja az osztályt tükröződés ContractDescription helyett.
Note
Ha a IsOneWay tulajdonság falseértéke az , (alapértelmezett), akkor a visszaadott void metódusok is kétirányú metódusok a mögöttes üzenet szintjén. Ebben az esetben az infrastruktúra létrehoz és küld egy üres üzenetet, amely jelzi a hívónak, hogy a metódus vissza lett adva. Ezzel a módszerrel az alkalmazás és az infrastruktúra hibainformációkat (például SOAP-hibát) küldhet vissza az ügyfélnek.
IsOneWay A válaszüzenet létrehozását és elküldését csak a beállítással true lehet megakadályozni. További információ: One-Way Services.
A Action tulajdonságok és ReplyAction tulajdonságok nem csak a SOAP-üzenetek alapértelmezett műveletének módosítására, hanem a felismeretlen üzenetek kezelőinek létrehozására, illetve a közvetlen üzenetprogramozási műveletek hozzáadásának letiltására is használhatók. A tulajdonság használatával megakadályozhatja, hogy az IsInitiating ügyfelek más műveletek előtt meghívjanak egy adott szolgáltatásműveletet. A tulajdonság használatával a IsTerminating WCF bezárja a csatornát, miután az ügyfelek meghívnak egy adott szolgáltatásműveletet. További információ: Munkamenetek használata.
A ProtectionLevel tulajdonsággal megadhatja a műveleti szerződésben, hogy a műveleti üzenetek aláírtak, titkosítottak vagy aláírtak és titkosítottak-e. Ha egy kötés nem tudja biztosítani a szerződés által megkövetelt biztonsági szintet, a rendszer futásidőben kivételt vet ki. További információkért lásd ProtectionLevel a védelmi szintet, és ismerje meg a védelmi szintet.
Konstruktorok
| Name | Description |
|---|---|
| OperationContractAttribute() |
Inicializálja a OperationContractAttribute osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| Action |
Lekéri vagy beállítja a kérésüzenet WS-címzési műveletét. |
| AsyncPattern |
Azt jelzi, hogy a művelet aszinkron módon van implementálva egy |
| HasProtectionLevel |
Olyan értéket kap, amely jelzi, hogy a művelet üzeneteinek titkosítva, aláírva vagy mindkettővel kell-e rendelkeznie. |
| IsInitiating |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a metódus végrehajt-e egy olyan műveletet, amely elindíthat egy munkamenetet a kiszolgálón (ha létezik ilyen munkamenet). |
| IsOneWay |
Lekéri vagy beállít egy értéket, amely jelzi, hogy egy művelet válaszüzenetet ad-e vissza. |
| IsTerminating |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a szolgáltatásművelet miatt a kiszolgáló bezárja-e a munkamenetet a válaszüzenet elküldése után, ha van ilyen. |
| Name |
Lekéri vagy beállítja a művelet nevét. |
| ProtectionLevel |
Lekéri vagy beállít egy értéket, amely meghatározza, hogy egy művelet üzeneteit titkosítva, aláírva vagy mindkettővel kell-e ellátni. |
| ReplyAction |
Lekéri vagy beállítja a SOAP művelet értékét a művelet válaszüzenetéhez. |
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. (Öröklődés forrása Attribute) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. (Öröklődés forrása Attribute) |
| GetHashCode() |
A példány kivonatkódját adja vissza. (Öröklődés forrása Attribute) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. (Öröklődés forrása Attribute) |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. (Öröklődés forrása Attribute) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). (Öröklődés forrása Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. (Öröklődés forrása Attribute) |