Bagikan melalui


Enlistment Kelas

Definisi

Memfasilitasi komunikasi antara peserta transaksi terdaftar dan manajer transaksi selama fase akhir transaksi.

public ref class Enlistment
public class Enlistment
type Enlistment = class
Public Class Enlistment
Warisan
Enlistment
Turunan

Contoh

Contoh berikut menunjukkan implementasi IEnlistmentNotification antarmuka, dan kapan Done metode harus dipanggil.

class myEnlistmentClass : IEnlistmentNotification
{
    public void Prepare(PreparingEnlistment preparingEnlistment)
    {
        Console.WriteLine("Prepare notification received");

        //Perform transactional work

        //If work finished correctly, reply prepared
        preparingEnlistment.Prepared();

        // otherwise, do a ForceRollback
        preparingEnlistment.ForceRollback();
    }

    public void Commit(Enlistment enlistment)
    {
        Console.WriteLine("Commit notification received");

        //Do any work necessary when commit notification is received

        //Declare done on the enlistment
        enlistment.Done();
    }

    public void Rollback(Enlistment enlistment)
    {
        Console.WriteLine("Rollback notification received");

        //Do any work necessary when rollback notification is received

        //Declare done on the enlistment
        enlistment.Done();
    }

    public void InDoubt(Enlistment enlistment)
    {
        Console.WriteLine("In doubt notification received");

        //Do any work necessary when indout notification is received
        
        //Declare done on the enlistment
        enlistment.Done();
    }
}
Public Class EnlistmentClass
    Implements IEnlistmentNotification

    Public Sub Prepare(ByVal myPreparingEnlistment As PreparingEnlistment) Implements System.Transactions.IEnlistmentNotification.Prepare
        Console.WriteLine("Prepare notification received")

        'Perform transactional work

        'If work finished correctly, reply with prepared
        myPreparingEnlistment.Prepared()
    End Sub

    Public Sub Commit(ByVal myEnlistment As Enlistment) Implements System.Transactions.IEnlistmentNotification.Commit
        Console.WriteLine("Commit notification received")

        'Do any work necessary when commit notification is received

        'Declare done on the enlistment
        myEnlistment.Done()
    End Sub

    Public Sub Rollback(ByVal myEnlistment As Enlistment) Implements System.Transactions.IEnlistmentNotification.Rollback
        Console.WriteLine("Rollback notification received")

        'Do any work necessary when rollback notification is received

        'Declare done on the enlistment
        myEnlistment.Done()
    End Sub

    Public Sub InDoubt(ByVal myEnlistment As Enlistment) Implements System.Transactions.IEnlistmentNotification.InDoubt
        Console.WriteLine("In doubt notification received")

        'Do any work necessary when indout notification is received

        'Declare done on the enlistment
        myEnlistment.Done()
    End Sub
End Class

Keterangan

EnlistVolatile Ketika metode Transaction dan EnlistDurable objek dipanggil untuk mendaftarkan peserta dalam transaksi, mereka mengembalikan objek ini yang menjelaskan pendaftaran.

Selama fase akhir penerapan transaksi, manajer transaksi meneruskan objek ini ke manajer sumber daya yang mengimplementasikan IEnlistmentNotification antarmuka yang telah terdaftar dalam transaksi. Secara khusus, manajer transaksi memanggil atau CommitRollback metode peserta, tergantung pada apakah yang terakhir telah memutuskan untuk melakukan atau mengembalikan transaksi. Peserta harus memanggil Done metode objek ini untuk memberi tahu manajer transaksi bahwa ia telah menyelesaikan pekerjaannya.

Pendaftaran dapat memanggil Done metode kapan saja sebelum dipanggil Prepared dalam fase persiapan. Dengan demikian, pendaftaran mentransmisikan suara baca saja, yang berarti bahwa itu memilih penerapan pada transaksi tetapi tidak perlu menerima hasil akhir. Perhatikan bahwa, setelah metode dipanggil Done , peserta yang terdaftar tidak menerima pemberitahuan lebih lanjut dari manajer transaksi.

Metode

Done()

Menunjukkan bahwa peserta transaksi telah menyelesaikan pekerjaannya.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Keamanan Thread

Jenis ini aman untuk utas.

Lihat juga