Sdílet prostřednictvím


NativeActivity – základní třída

NativeActivity je abstraktní třída s chráněným konstruktorem. Podobně jako CodeActivity, NativeActivity se používá k psaní imperativního chování implementací Execute metody. Na rozdíl od CodeActivity, NativeActivity má přístup ke všem vystaveným funkcím modulu runtime pro pracovní postupy prostřednictvím NativeActivityContext objektu předaného metodě Execute.

Použití NativeActivityContext

K funkcím modulu runtime pracovního postupu lze přistupovat z Execute metody pomocí členů parametru context typu NativeActivityContext. Mezi dostupné NativeActivityContext funkce patří:

Vytvořte vlastní aktivitu, která dědí z NativeActivity

  1. OpenVisual Studio 2010.

  2. Vyberte Soubor, Nový a pak Project. V okně Typy projektů vyberte v části Visual C#pracovní postup 4.0 a vyberte uzel v2010. V okně Šablony vyberte Knihovnu aktivit. Pojmenujte nový projekt HelloActivity.

  3. V projektu HelloActivity klikněte pravým tlačítkem na Activity1.xaml a vyberte Odstranit.

  4. Klikněte pravým tlačítkem myši na projekt HelloActivity a vyberte Přidat a potom třídu. Pojmenujte novou třídu HelloActivity.cs.

  5. Do souboru HelloActivity.cs přidejte následující using direktivy.

    using System.Activities;
    using System.Activities.Statements;
    
  6. Vytvořte novou třídu, která dědí z NativeActivity, přidáním základní třídy do deklarace třídy.

    class HelloActivity : NativeActivity
    
  7. Přidejte do třídy funkce přidáním Execute metody.

    protected override void Execute(NativeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. Přepište metodu CacheMetadata a zavolejte příslušnou metodu Add, kterou informujte runtime pracovního postupu o proměnných, argumentech, podřízených objektech a delegátech vlastní aktivity. Další informace naleznete ve NativeActivityMetadata třídě.

  9. Pomocí objektu NativeActivityContext můžete naplánovat záložku. Viz Bookmarks pro podrobnosti o tom, jak vytvořit, naplánovat a obnovit záložku.

    protected override void Execute(NativeActivityContext context)
        {
            // Create a Bookmark and wait for it to be resumed.
            context.CreateBookmark(BookmarkName.Get(context),
                new BookmarkCallback(OnResumeBookmark));
        }