/ / Come eseguire la persistenza personalizzata delle variabili in un flusso di lavoro WF4? - base del flusso di lavoro

Come eseguire la persistenza personalizzata delle variabili in un flusso di lavoro WF4? - fondazione del flusso di lavoro

Vorrei sovrascrivere la persistenza predefinitadi oggetti personalizzati utilizzati come variabili e argomenti in un flusso di lavoro di Workflow Foundation 4. Capisco che WF4 persiste gli oggetti personalizzati utilizzando NetDataContractSerializer.

Tuttavia, i miei oggetti non sono semplici POCO.Sono più simili a oggetti "ActiveRecord", collegati a un database. Pertanto, vorrei sovrascrivere il processo di persistenza, al fine di memorizzare quegli oggetti e caricare quegli oggetti dal database come richiesto

Ho provato a implementare ISerializable ma,ovviamente non funziona. C'è un altro punto di estensione in Workflow Foundation in cui posso collegarmi in modo da poter intercettare e personalizzare il comportamento di persistenza dei miei oggetti personalizzati?

Ad esempio, immagina il seguente oggetto:

public sealed class Entity
{
private readonly SqlConnection connection_;

public Guid Id { get; private set; }
public String Name { get; set; }

// I would like to persist this object in the database
// when the workflow "asks" for it to be persisted
// I don"t know what to write or implement in this class
}

Come potrebbe essere persistito questo oggetto nel filedatabase automaticamente quando il flusso di lavoro persiste o viene scaricato. Nel mio caso, SqlConnection non è serializzabile, quindi probabilmente dovrei scrivere del codice personalizzato, implementare ISerializable o qualcosa del genere.

Qualcuno può indicarmi la giusta direzione?

risposte:

0 per risposta № 1

Puoi usare Persistenza Partecipante per fornire ulteriori informazioni al tuoistanza del flusso di lavoro persistente. I dati per PersistenceParticipant possono provenire da origini diverse dal flusso di lavoro. Registri PersistenceParticipant come estensione che può essere aggiunta in seguito, puoi estendere i dati che devono essere archiviati per istanza del flusso di lavoro