Postupy: Vývoj zprostředkovatele úložiště instancí
Následující postup obsahuje kroky k vytvoření vlastního zprostředkovatele úložiště instancí. Obecné informace o zprostředkovatelích úložiště instancí, dotazů a řízení naleznete v tématu Zprostředkovatelé úložiště instancí, dotazů a řízení.
Vytvořte projekt knihovny tříd.
Přidejte odkazy na knihovny Microsoft.ApplicationServer.StoreProvider.dll, System.Activities.DurableInstancing.dll a System.Runtime.DurableInstancing.dll. Dále přidejte odkazy na knihovny System.Configuration.dll a System.Data.dll za účelem kompilace ukázky kódu poskytnuté v tomto tématu.
Na začátek zdrojového souboru přidejte následující příkazy using.
using Microsoft.ApplicationServer.StoreProvider; using System.Runtime.DurableInstancing; using System.Activities.DurableInstancing; //for the sample code provided in the methods using System.Collections.Specialized; using System.Data; using System.Data.SqlClient;
Vytvořte třídu pro zprostředkovatele úložiště instancí, a to odvozením z třídy InstanceStoreProvider.
public sealed class MySqlWorkflowInstanceStoreProvider : InstanceStoreProvider { }
Implementujte metodu Initialize. Tato metoda přijímá balík vlastností, který odpovídá konfiguračním informacím zadaným v konfiguračním souboru. Data v tomto balíku vlastností se použijí k sestavení zprostředkovatele.
Před voláním metody CreateInstanceStore nebo UniqueProviderIdentifier je volána metoda Initialize.
string ConnectionString { get; set; } public override void Initialize(string name, NameValueCollection config) { this.ConnectionString= config["connectionString"]; // Initialize the base class base.Initialize(name, config); }
Implementujte metodu CreateInstanceStore třídy InstanceStoreProvider, čímž dosáhnete vrácení objektu System.Runtime.DurableInstancing.InstanceStore, který bude klient používat k provádění příkazů v úložišti instancí.
public override InstanceStore CreateInstanceStore() { // the following line creates an instance of the SqlWorkflowInstanceStore class SqlWorkflowInstanceStore store = new SqlWorkflowInstanceStore(this.ConnectionString); return store; }
Implementujte metodu UniqueProviderIdentifier. Na základě jedinečného ID zprostředkovatele vráceného touto metodou lze určit, zda různé objekty zprostředkovatelů po svém překladu odkazují na stejné základní úložiště.
string UniqueStoreIdentifier { get; set; } public override string UniqueProviderIdentifier() { this.UniqueStoreIdentifier = GetUniqueStoreIdentifier(this.ConnectionString); return this.UniqueStoreIdentifier; } private string GetUniqueStoreIdentifier(string connectionString) { using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand()) { command.CommandType = CommandType.Text; command.CommandText = "SELECT TOP (1) [StoreIdentifier] FROM [Microsoft.ApplicationServer.DurableInstancing].[StoreVersion]"; command.Connection = connection; command.Connection.Open(); Guid identifier = (Guid)command.ExecuteScalar(); return identifier.ToString(); } } }
Služba Správa pracovního postupu nebo hostitel pracovního postupu vyvolává tuto metodu u zprostředkovatele úložiště instancí s cílem získat objekt InstanceStore specifický pro úložiště. Technologie AppFabric zahrnuje zprostředkovatele pro Úložiště instancí pracovních postupů SQL, který při vyvolání metody CreateInstanceStore vytvoří objekt SqlWorkflowInstanceStore.
Důležité
Informace o registraci zprostředkovatele v technologii Windows Server AppFabric naleznete v tématu Postupy: Registrace vlastních zprostředkovatelů.
2011-12-05