ServicedComponent Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Tidak memastikan bahwa, dalam konteks COM+, ServicedComponent bit objek |
IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Mendapatkan informasi tertentu tentang ServicedComponent instans kelas. |