WorkflowPersistenceService.LoadWorkflowInstanceState(Guid) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Türetilmiş bir sınıfta uygulandığında, iş akışı örneğinin belirtilen durumunu belleğe geri yükler.
protected public:
abstract System::Workflow::ComponentModel::Activity ^ LoadWorkflowInstanceState(Guid instanceId);
protected internal abstract System.Workflow.ComponentModel.Activity LoadWorkflowInstanceState (Guid instanceId);
abstract member LoadWorkflowInstanceState : Guid -> System.Workflow.ComponentModel.Activity
Protected Friend MustOverride Function LoadWorkflowInstanceState (instanceId As Guid) As Activity
Parametreler
Döndürülenler
Activity İş akışı örneğinin kök etkinliğini temsil eden bir.
Örnekler
Aşağıdaki örnekte yönteminin bir uygulaması gösterilmektedir LoadWorkflowInstanceState
. Bu örnek, Özel Kalıcılık Hizmeti örneğinden, FilePersistenceService.cs dosyasından alınmalıdır. Daha fazla bilgi için bkz. Özel Kalıcılık Hizmeti Örneği.
// Load workflow instance state.
protected override Activity LoadWorkflowInstanceState(Guid instanceId)
{
Console.WriteLine("Loading instance: {0}\n", instanceId);
byte[] workflowBytes = DeserializeFromFile(instanceId);
return WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, null);
}
' Load workflow instance state.
Protected Overrides Function LoadWorkflowInstanceState(ByVal instanceId As System.Guid) As System.Workflow.ComponentModel.Activity
Console.WriteLine("Loading instance: 0}" + vbLf, instanceId)
Dim obj As Object = DeserializeFromFile(instanceId)
Dim workflowBytes As Byte() = DeserializeFromFile(instanceId)
Return WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, Nothing)
End Function
Açıklamalar
Etkinliğin özdeş bir kopyasını geri yüklemeniz gerekir. Bunu yapmak için, veri deposundaki iş akışı örneğinin gösteriminden geçerli Stream bir değeri geri yüklemeniz gerekir; ardından bunu Stream iş akışı örneği durumunu seri durumdan kaldırmak için aşırı yüklenmiş Load yöntemlerden birine geçirmeniz gerekir. Kalıcılık hizmetiniz iş akışı örneği durumunu veri deposundan yükleyemiyorsa uygun bir iletiyle birlikte bir PersistenceException oluşturmalıdır.
İş akışı çalışma zamanı altyapısı, veri deposuna kaydedilen bir iş akışı örneği durumuna erişimi kısıtlamak için kilitleme semantiğini uygular. Bu, birden çok işlemde çalışan kalıcılık hizmetleri tarafından erişilebilir. Kilitleme semantiği, iki farklı işlemde çalışan kalıcılık hizmetlerinin aynı iş akışı örneğini aynı anda belleğe yüklemesini önlemek için tasarlanmıştır. Kalıcılık hizmetinizin desteklemek üzere tasarlandığı ortam türüne bağlı olarak, bu işlevselliği destekleyip desteklememeyi seçebilirsiniz. Çalışma zamanı kilitleme semantiğini desteklemeyi seçerseniz ve bu iş akışı örneği durumu daha önce başka bir işlem tarafından kilitlenmişse, bir WorkflowOwnershipExceptionoluşturmanız gerekir. Aksi takdirde, veri deponuzda iş akışı örneği durumuna erişimi kilitlemeniz gerekir. İş akışı örneği durumunun kilidi, kilit açma parametresi olarak ayarlanmış bir çağrısı UnlockWorkflowInstanceState veya çağrısı SaveWorkflowInstanceState ile açılabilir.true