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 № 1Puoi 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