Sdílet prostřednictvím


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í.

  1. Vytvořte projekt knihovny tříd.

  2. 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.

  3. 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;
    
  4. Vytvořte třídu pro zprostředkovatele úložiště instancí, a to odvozením z třídy InstanceStoreProvider.

        public sealed class MySqlWorkflowInstanceStoreProvider : InstanceStoreProvider
        {
        }
    
  5. 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);
            }
    
  6. 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;
            }
    
  7. 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