SqlWorkflowInstanceStore.Promote Methode

Definition

Ordnet die angegebenen Eigenschaften einer Workflowinstanz zu, damit Sie Instanzen auf Grundlage bestimmter Werte für diese Eigenschaften abfragen können. Diese Eigenschaften, die sich in externen Abfragen verwenden lassen, können einfache Typen (z. B. Int64, String usw.) oder serialisierte Binärtypen (byte[]) sein. Binäre Eigenschaften werden in der Regel verwendet, um Nachverfolgungsdaten zu speichern.

public:
 void Promote(System::String ^ name, System::Collections::Generic::IEnumerable<System::Xml::Linq::XName ^> ^ promoteAsVariant, System::Collections::Generic::IEnumerable<System::Xml::Linq::XName ^> ^ promoteAsBinary);
public void Promote (string name, System.Collections.Generic.IEnumerable<System.Xml.Linq.XName> promoteAsVariant, System.Collections.Generic.IEnumerable<System.Xml.Linq.XName> promoteAsBinary);
member this.Promote : string * seq<System.Xml.Linq.XName> * seq<System.Xml.Linq.XName> -> unit
Public Sub Promote (name As String, promoteAsVariant As IEnumerable(Of XName), promoteAsBinary As IEnumerable(Of XName))

Parameter

name
String

Der Name der Höherstufung.

promoteAsVariant
IEnumerable<XName>

Die Eigenschaften, die als Varianten höhergestuft werden müssen.

promoteAsBinary
IEnumerable<XName>

Die Eigenschaften, die als binärer Stream höhergestuft werden müssen.

Hinweise

Beispiel

Das folgende Codebeispiel zeigt die Verwendung von Promote in einem SqlWorkflowInstanceStore.

static void Main(string[] args)
{
    // Create service host.
    WorkflowServiceHost host = new WorkflowServiceHost(CountingWorkflow(), new Uri(hostBaseAddress));

    // Add service endpoint.
    host.AddServiceEndpoint("ICountingWorkflow", new BasicHttpBinding(), "");

    // Define SqlWorkflowInstanceStore and assign it to host.
    SqlWorkflowInstanceStoreBehavior store = new SqlWorkflowInstanceStoreBehavior(connectionString);
    List<XName> variantProperties = new List<XName>()
    {
        xNS.GetName("Count")
    };
    store.Promote("CountStatus", variantProperties, null);

    host.Description.Behaviors.Add(store);

    host.WorkflowExtensions.Add<CounterStatus>(() => new CounterStatus());
    host.Open(); // This sample needs to be run with Admin privileges.
                 // Otherwise the channel listener is not allowed to open ports.
                 // See sample documentation for details.

    // Create a client that sends a message to create an instance of the workflow.
    ICountingWorkflow client = ChannelFactory<ICountingWorkflow>.CreateChannel(new BasicHttpBinding(), new EndpointAddress(hostBaseAddress));
    client.start();

    Console.WriteLine("(Press [Enter] at any time to terminate host)");
    Console.ReadLine();
    host.Close();
}

Gilt für: