Megosztás a következőn keresztül:


Útmutató: Tevékenység létrehozása

A tevékenységek a WF alapvető viselkedési egységei. Egy tevékenység végrehajtási logikája implementálható felügyelt kódban, vagy más tevékenységek használatával is implementálható. Ez a témakör bemutatja, hogyan hozhat létre két tevékenységet. Az első tevékenység egy egyszerű tevékenység, amely kód használatával implementálja annak végrehajtási logikáját. A második tevékenység megvalósítását más tevékenységek használatával határozzák meg. Ezeket a tevékenységeket az oktatóanyag következő lépéseiben használjuk.

A tevékenységtár-projekt létrehozása

  1. Nyissa meg a Visual Studiót, és válassza az Új>projekt lehetőséget a Fájl menüben.

  2. Az Új projekt párbeszédpanel Telepített kategóriája alatt válassza a Visual C#>Workflow (vagy Visual Basic>Workflow) lehetőséget.

    Feljegyzés

    Ha nem látja a Munkafolyamat sablon kategóriát, előfordulhat, hogy telepítenie kell a Visual Studio Windows Workflow Foundation összetevőjét. Az Új projekt párbeszédpanel bal oldalán válassza a Visual Studio Installer megnyitása hivatkozást. A Visual Studio Installerben válassza az Egyes összetevők lapot. Ezután a Fejlesztési tevékenységek kategóriában válassza ki a Windows Workflow Foundation összetevőt. Az összetevő telepítéséhez válassza a Módosítás lehetőséget.

  3. Válassza ki a Tevékenységtár projektsablont. Írja be NumberGuessWorkflowActivities a Név mezőbe, majd kattintson az OK gombra.

  4. Kattintson a jobb gombbal az Activity1.xaml elemre a Megoldáskezelő, és válassza a Törlés parancsot. A megerősítéshez kattintson az OK gombra .

A ReadInt-tevékenység létrehozása

  1. Válassza az Új elem hozzáadása lehetőséget a Projekt menüben.

  2. A Telepített>gyakori elemek csomóponton válassza a Munkafolyamat lehetőséget. Válassza a Kódtevékenység lehetőséget a munkafolyamat-listából.

  3. Írja be ReadInt a Név mezőbe, majd kattintson a Hozzáadás gombra.

  4. Cserélje le a meglévő ReadInt definíciót a következő definícióra.

    public sealed class ReadInt : NativeActivity<int>
    {
        [RequiredArgument]
        public InArgument<string> BookmarkName { get; set; }
    
        protected override void Execute(NativeActivityContext context)
        {
            string name = BookmarkName.Get(context);
    
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("BookmarkName cannot be an Empty string.",
                    "context");
            }
    
            context.CreateBookmark(name, new BookmarkCallback(OnReadComplete));
        }
    
        // NativeActivity derived activities that do asynchronous operations by calling
        // one of the CreateBookmark overloads defined on System.Activities.NativeActivityContext
        // must override the CanInduceIdle property and return true.
        protected override bool CanInduceIdle
        {
            get { return true; }
        }
    
        void OnReadComplete(NativeActivityContext context, Bookmark bookmark, object state)
        {
            this.Result.Set(context, Convert.ToInt32(state));
        }
    }
    
    Public NotInheritable Class ReadInt
        Inherits NativeActivity(Of Integer)
    
        <RequiredArgument()>
        Property BookmarkName() As InArgument(Of String)
    
        Protected Overrides Sub Execute(ByVal context As NativeActivityContext)
            Dim name As String
            name = BookmarkName.Get(context)
    
            If name = String.Empty Then
                Throw New Exception("BookmarkName cannot be an Empty string.")
            End If
    
            context.CreateBookmark(name, New BookmarkCallback(AddressOf OnReadComplete))
        End Sub
    
        ' NativeActivity derived activities that do asynchronous operations by calling 
        ' one of the CreateBookmark overloads defined on System.Activities.NativeActivityContext 
        ' must override the CanInduceIdle property and return True.
        Protected Overrides ReadOnly Property CanInduceIdle As Boolean
            Get
                Return True
            End Get
        End Property
    
        Sub OnReadComplete(ByVal context As NativeActivityContext, ByVal bookmark As Bookmark, ByVal state As Object)
            Result.Set(context, Convert.ToInt32(state))
        End Sub
    
    End Class
    

    Feljegyzés

    A ReadInt tevékenység a kódtevékenység-sablon alapértelmezett értékétől CodeActivityszármazikNativeActivity<TResult>. CodeActivity<TResult> akkor használható, ha a tevékenység egyetlen eredményt ad, amely az Result argumentumon keresztül jelenik meg, de CodeActivity<TResult> nem támogatja a könyvjelzők használatát, ezért NativeActivity<TResult> a program használja.

A Prompt tevékenység létrehozása

  1. A projekt létrehozásához nyomja le a Ctrl Shift+B billentyűkombinációt.+ A projekt létrehozása lehetővé teszi az ebben a ReadInt projektben lévő tevékenység használatát az egyéni tevékenység létrehozásához ebből a lépésből.

  2. Válassza az Új elem hozzáadása lehetőséget a Projekt menüben.

  3. A Telepített>gyakori elemek csomóponton válassza a Munkafolyamat lehetőséget. Válassza ki a Tevékenység lehetőséget a munkafolyamat-listából .

  4. Írja be Prompt a Név mezőbe, majd kattintson a Hozzáadás gombra.

  5. Kattintson duplán a Prompt.xaml elemre a Megoldáskezelő a tervezőben való megjelenítéséhez, ha még nem jelenik meg.

  6. Kattintson az Argumentumok elemre a tevékenységtervező bal alsó részén az Argumentumok panel megjelenítéséhez.

  7. Kattintson az Argumentum létrehozása gombra.

  8. Írja be BookmarkName a Név mezőbe, válassza a Be lehetőséget az Irány legördülő listában, válassza az Argumentumtípus legördülő listából a Sztring lehetőséget, majd az Enter billentyűt lenyomva mentse az argumentumot.

  9. Kattintson az Argumentum létrehozása gombra.

  10. Írja be az újonnan hozzáadott BookmarkName argumentum alatti Név mezőbe, válassza ki az Irány legördülő listából, válassza az Int32 lehetőséget az Argumentumtípus legördülő listából, majd nyomja le az Enter billentyűt.Result

  11. Kattintson az Argumentum létrehozása gombra.

  12. Írja be Text a Név mezőbe, válassza a Be lehetőséget az Irány legördülő listában, válassza az Argumentumtípus legördülő listából a Sztring lehetőséget, majd az Enter billentyűt lenyomva mentse az argumentumot.

    Ez a három argumentum az alábbi lépésekben a tevékenységhez hozzáadott tevékenységek és ReadInt tevékenységek megfelelő argumentumaihoz WriteLine Prompt van kötve.

  13. Az Argumentumok panel bezárásához kattintson a tevékenységtervező bal alsó részén található Argumentumok elemre.

  14. Húzzon egy sorozattevékenységet az eszközkészlet Vezérlőfolyamat szakaszából, és vigye a Prompt tevékenységtervező idei tevékenység címkéjére.

    Tipp.

    Ha az Eszközkészlet ablak nem jelenik meg, válassza az Eszközkészlet lehetőséget a Nézet menüben.

  15. Húzzon egy WriteLine-tevékenységet az eszközkészlet Primitívek szakaszából, és húzza a Folyamattevékenység idei címkéjére.

  16. A WriteLine tevékenység Szöveg argumentumának kötése a Prompt tevékenység Szöveg argumentumához a Tulajdonságok ablak Enter a C# kifejezés vagy Az Enter a VB kifejezés mezőjébe beírvaText, majd nyomja le kétszer a Tab billentyűt. Ezzel bezárja az IntelliSense listatagok ablakát, és a tulajdonság értékét úgy menti, hogy áthelyezi a kijelölést a tulajdonságból. Ezt a tulajdonságot úgy is beállíthatja, hogy beírja Text az Enter a C# kifejezést , vagy beír egy VB-kifejezést a tevékenységbe.

    Tipp.

    Ha a Tulajdonságok ablak nem jelenik meg, válassza a Tulajdonságok ablak lehetőséget a Nézet menüben.

  17. Húzzon egy ReadInt-tevékenységet az eszközkészlet NumberGuessWorkflowActivities szakaszából, és helyezze a Sorrend tevékenységbe, hogy az a WriteLine-tevékenységet kövesse.

  18. Kösse a ReadInt tevékenység Könyvjelzőnév argumentumát a Prompt tevékenység BookmarkName argumentumához. Ehhez írja BookmarkName be a Tulajdonságok ablak Könyvjelzőnév argumentumától jobbra található Enter a VB kifejezést, majd nyomja le kétszer a Tab billentyűt az IntelliSense listatagok ablakának bezárásához és a tulajdonság mentéséhez.

  19. Kösse a ReadInt tevékenység Eredmény argumentumát a Prompt tevékenység Eredmény argumentumához. Ehhez írja Result be a Tulajdonságok ablak Eredmény argumentumától jobbra található Enter a VB kifejezést, majd nyomja le kétszer a Tab billentyűt.

  20. A megoldás létrehozásához nyomja le a Ctrl Shift+B billentyűkombinációt.+

Következő lépések

Ha útmutatást szeretne a munkafolyamatok ezen tevékenységek használatával történő létrehozásáról, tekintse meg a munkafolyamat létrehozása című oktatóanyag következő lépését.

Lásd még