Share via


ServicedComponent Kelas

Definisi

Mewakili kelas dasar semua kelas menggunakan layanan COM+.

public ref class ServicedComponent abstract : ContextBoundObject, IDisposable, System::EnterpriseServices::IRemoteDispatch, System::EnterpriseServices::IServicedComponentInfo
[System.Serializable]
public abstract class ServicedComponent : ContextBoundObject, IDisposable, System.EnterpriseServices.IRemoteDispatch, System.EnterpriseServices.IServicedComponentInfo
[<System.Serializable>]
type ServicedComponent = class
    inherit ContextBoundObject
    interface IRemoteDispatch
    interface IDisposable
    interface IServicedComponentInfo
Public MustInherit Class ServicedComponent
Inherits ContextBoundObject
Implements IDisposable, IRemoteDispatch, IServicedComponentInfo
Warisan
Turunan
Atribut
Penerapan

Contoh

Contoh kode berikut menunjukkan cara mengekspos kelas sebagai komponen COM yang dikonfigurasi.


[assembly:ApplicationName("Calculator")];
[assembly:ApplicationActivation(ActivationOption::Library)];
[assembly:System::Reflection::AssemblyKeyFile("Calculator.snk")];
public ref class Calculator: public ServicedComponent
{
public:
   int Add( int x, int y )
   {
      return (x + y);
   }

};
using System;
using System.EnterpriseServices;

[assembly: ApplicationName("Calculator")]
[assembly: ApplicationActivation(ActivationOption.Library)]
[assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]
public class Calculator : ServicedComponent
{
    public int Add (int x, int y)
    {
        return(x+y);
    }
}

Untuk menyebarkan kelas ini sebagai komponen COM yang dikonfigurasi, Anda harus menghasilkan kunci yang kuat, mengkompilasi kelas sebagai pustaka, dan mendaftarkan pustaka. Ketiga langkah ini dicapai dengan tiga perintah berikut.

sn -k Calculator.snk  
csc /t:library Calculator.cs  
regsvcs Calculator.dll  

Keterangan

Dalam kondisi tertentu, kelas yang berasal dari ServicedComponent yang berjalan dalam aplikasi COM+ dapat berhenti merespons. Masalah ini disebabkan oleh kebuntuan Aktivitas. Aktivitas dapat mengalami kebuntuan pada aplikasi multithread karena pembersihan referensi komponen yang asinkron. Untuk mengatasi masalah ini, panggil Dispose metode ketika Anda menyelesaikan pekerjaan dengan objek yang berasal dari ServicedComponent.

Catatan

Kode klien harus memanggil Dispose komponen yang dilayankan untuk memastikan operasi yang tepat.

Konstruktor

ServicedComponent()

Menginisialisasi instans baru kelas ServicedComponent.

Metode

Activate()

Dipanggil oleh infrastruktur saat objek dibuat atau dialokasikan dari kumpulan. Ambil alih metode ini untuk menambahkan kode inisialisasi kustom ke objek.

CanBePooled()

Metode ini dipanggil oleh infrastruktur sebelum objek dimasukkan kembali ke dalam kumpulan. Ambil alih metode ini untuk memilih apakah objek dimasukkan kembali ke dalam kumpulan.

Construct(String)

Dipanggil oleh infrastruktur tepat setelah konstruktor dipanggil, melewati string konstruktor. Ambil alih metode ini untuk menggunakan nilai string konstruksi.

CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
Deactivate()

Dipanggil oleh infrastruktur ketika objek akan dinonaktifkan. Ambil alih metode ini untuk menambahkan kode finalisasi kustom ke objek ketika kode kompilasi just-in-time (JIT) atau pengumpulan objek digunakan.

Dispose()

Merilis semua sumber daya yang ServicedComponentdigunakan oleh .

Dispose(Boolean)

Merilis sumber daya tidak terkelola yang ServicedComponent digunakan oleh dan secara opsional merilis sumber daya terkelola.

DisposeObject(ServicedComponent)

Menyelesaikan objek dan menghapus referensi COM+ terkait.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IRemoteDispatch.RemoteDispatchAutoDone(String)

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Memastikan bahwa, dalam konteks COM+, ServicedComponent bit objek done kelas diatur ke true setelah pemanggilan metode jarak jauh.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

Tidak memastikan bahwa, dalam konteks COM+, ServicedComponent bit objek done kelas diatur ke true setelah pemanggilan metode jarak jauh.

IServicedComponentInfo.GetComponentInfo(Int32, String[])

Mendapatkan informasi tertentu tentang ServicedComponent instans kelas.

Berlaku untuk