PersistenceParticipant.PublishValues(IDictionary<XName,Object>) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
O host invoca este método e passa todos os valores carregados na InstanceData coleção (preenchidos pelo LoadWorkflowCommand ou LoadWorkflowByInstanceKeyCommand) como parâmetro de dicionário.
protected:
virtual void PublishValues(System::Collections::Generic::IDictionary<System::Xml::Linq::XName ^, System::Object ^> ^ readWriteValues);
protected virtual void PublishValues(System.Collections.Generic.IDictionary<System.Xml.Linq.XName,object> readWriteValues);
abstract member PublishValues : System.Collections.Generic.IDictionary<System.Xml.Linq.XName, obj> -> unit
override this.PublishValues : System.Collections.Generic.IDictionary<System.Xml.Linq.XName, obj> -> unit
Protected Overridable Sub PublishValues (readWriteValues As IDictionary(Of XName, Object))
Parâmetros
- readWriteValues
- IDictionary<XName,Object>
Os valores de leitura-escrita que foram carregados a partir do armazenamento de persistência. Este dicionário corresponde ao dicionário de valores de leitura-escrita que persistiu no episódio de persistência mais recente.
Exemplos
O exemplo de código seguinte demonstra o uso de PublishValues numa classe que deriva de PersistenceParticipant. Este exemplo é da amostra de Participantes de Persistência .
public class StepCountExtension : PersistenceParticipant
{
static XNamespace stepCountNamespace = XNamespace.Get("urn:schemas-microsoft-com:Microsoft.Samples.WF/WorkflowInstances/properties");
static XName currentCountName = stepCountNamespace.GetName("CurrentCount");
int currentCount;
public int CurrentCount
{
get
{
return this.currentCount;
}
}
internal void IncrementStepCount()
{
this.currentCount += 1;
}
protected override void CollectValues(out IDictionary<XName, object> readWriteValues, out IDictionary<XName, object> writeOnlyValues)
{
readWriteValues = new Dictionary<XName, object>(1) { { currentCountName, this.currentCount } };
writeOnlyValues = null;
}
protected override void PublishValues(IDictionary<XName, object> readWriteValues)
{
object loadedData;
if (readWriteValues.TryGetValue(currentCountName, out loadedData))
{
this.currentCount = (int)loadedData;
}
}
}