Condividi tramite


Metodo IObjectControl::Activate (comsvcs.h)

Consente a un oggetto COM+ di eseguire l'inizializzazione specifica del contesto ogni volta che viene attivata. Questo metodo viene chiamato dall'ambiente di runtime COM+ prima che qualsiasi altro metodo venga chiamato sull'oggetto .

Sintassi

HRESULT Activate();

Valore restituito

Questo metodo può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL e S_OK.

Commenti

Ogni volta che un client chiama un oggetto COM+ che non è già attivo, l'ambiente di runtime COM+ attiva automaticamente l'oggetto. Questa operazione è denominata Attivazione JITE. Per i componenti che supportano IObjectControl come interfaccia, COM+ richiama il metodo Activate dell'oggetto prima di passare la chiamata al metodo del client all'oggetto.

Tutte le procedure di inizializzazione specifiche del contesto devono essere implementate nel metodo Activate per gli oggetti che espongono IObjectControl.

Ad esempio, è possibile utilizzare il metodo Activate per ottenere un riferimento al contesto di un oggetto e archiviarlo in una variabile membro. Il contesto dell'oggetto è quindi disponibile per qualsiasi metodo che lo richiede e non è necessario acquisire un nuovo oggetto ogni volta che si vuole usarlo. Dopo aver ottenuto un riferimento al contesto dell'oggetto, è possibile utilizzare i metodi IObjectControl per verificare se la sicurezza è abilitata, se l'oggetto è in esecuzione in una transazione o se il chiamante è in un determinato ruolo.

Se si abilita il riciclo degli oggetti (implementando il metodo CanBePooled per eseguire una query sull'oggetto), il metodo Activate deve essere in grado di gestire sia gli oggetti appena creati che riciclati. Quando il metodo Activate viene restituito, non deve esistere alcuna differenza distinzione tra un nuovo oggetto e uno riciclato.

COM+ impedisce esplicitamente di chiamare in un oggetto che espone IObjectControl prima di chiamare il metodo Activate (quando si trova nel relativo costruttore). Una chiamata di questo tipo genera un errore di RPC_E_DISCONNECTED. Ad esempio, se un oggetto passa un riferimento a se stesso mentre è nel costruttore e quindi il riferimento chiama di nuovo in tale oggetto prima della chiamata a Activate, viene restituito l'errore disconnesso.

È anche possibile utilizzare il metodo Activate per ottenere un riferimento all'interfaccia ISecurityProperty dell'oggetto e controllare l'ID di sicurezza dell'autore dell'oggetto prima che vengano chiamati metodi.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione comsvcs.h

Vedi anche

IObjectControl