sdk
latest
false
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.
UiPath logo, featuring letters U and I in white

Entwickleranleitung

Letzte Aktualisierung 30. Okt. 2025

Schreiben des Codes für eine benutzerdefinierte Aktivität

Um besser zu verstehen, wie der Code für eine benutzerdefinierte Aktivität geschrieben wird, erstellen wir eine einfache Aktivität, die den Benutzer nach zwei Zahlen fragt und dann die Quadratur ihrer Summe ausgibt.
  1. Microsoft Visual Studio starten (Launch Microsoft Visual Studio).
  2. Wählen Sie Datei > Neues > Projekt… aus (Tastenkombination: Ctrl + Shift + N). Das Fenster Neues Projekt wird angezeigt.
  3. Wählen Sie C# aus dem Dropdown-Menü Sprachen aus. Die Liste aller Abhängigkeiten, die C# verwenden, wird angezeigt.
  4. Wählen Sie Klassenbibliothek (.NET Framework) aus. Dadurch können wir die benutzerdefinierte Aktivität als .dll -Datei exportieren. Wählen Sie Weiter aus, um zum Fenster Konfigurieren Ihres neuen Projekts zu wechseln.


  5. Füllen Sie das Feld Projektname mit dem gewünschten Aktivitätsnamen aus. In unserem Fall können wir „MathSquareOfSum“ verwenden.
  6. Wählen Sie .NET Framework 4.6.1 aus dem Dropdown-Menü Framework aus. Dadurch wird sichergestellt, dass die Bibliothek mit UiPath Studio kompatibel ist.
    Wichtig: In Windows-Legacy-Projekten unterstützt UiPath Studio Aktivitäten, die mit .NET Framework 4.5.2 bis 4.6.1 erstellt wurden. Informationen zum Migrieren von Aktivitäten zu .NET zur Verwendung in Projekten mit Windows-Kompatibilität finden Sie unter Migrieren von Aktivitäten zu .NET 6.


  7. Wählen Sie Erstellen aus , um zum Codedesigner zu wechseln und mit dem Schreiben des Aktivitätscodes zu beginnen.
  8. Klicken Sie im Projektmappen- Explorer mit der rechten Maustaste auf die Verzweigung Referenzen , und wählen Sie Referenz hinzufügen...aus. Das Fenster Referenzmanager wird angezeigt.
  9. Suchen Sie nach den Referenzen System.Activities und System.ComponentModel.Composition und fügen Sie sie hinzu. Aktivieren Sie das jeweilige Kontrollkästchen und klicken Sie auf OK. Dadurch können wir Klassen aus den oben genannten Referenzen verwenden.




  10. Jetzt müssen wir sicherstellen, dass unser Code die neu hinzugefügten Verweise verwendet. Dazu fügen Sie im Code-Designer die folgenden Zeilen hinzu:
    using System.Activities;
    using System.ComponentModel;using System.Activities;
    using System.ComponentModel;
    Unser Projekt sollte nun folgendermaßen aussehen:


  11. Fügen Sie die Eingabe- und Ausgabeparameter hinzu. In unserem Fall sollte der Code folgendermaßen aussehen:
    //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
     
    //Dots allow for hierarchy. App Integration.Excel is where Excel activities are.
    [Category("Category.Where.Your.Activity.Appears.In.Toolbox")]
    [DisplayName("Human readable name instead of class name")]
    [Description("The text of the tooltip")]
     public class MathSqSum : CodeActivity
    {
     
        //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
                 [Category("Input")]
            [DisplayName("First Number")]
            [Description("Enter the first number")]
            [RequiredArgument]
            public InArgument<int> FirstNumber { get; set; }
            [Category("Input")]
            [DisplayName("Second Number")]
            [Description("Enter the second number")]
            [RequiredArgument]
            public InArgument<int> SecondNumber { get; set; }
            [Category("Output")]
            public OutArgument<int> ResultNumber { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
            }//Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
     
    //Dots allow for hierarchy. App Integration.Excel is where Excel activities are.
    [Category("Category.Where.Your.Activity.Appears.In.Toolbox")]
    [DisplayName("Human readable name instead of class name")]
    [Description("The text of the tooltip")]
     public class MathSqSum : CodeActivity
    {
     
        //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
                 [Category("Input")]
            [DisplayName("First Number")]
            [Description("Enter the first number")]
            [RequiredArgument]
            public InArgument<int> FirstNumber { get; set; }
            [Category("Input")]
            [DisplayName("Second Number")]
            [Description("Enter the second number")]
            [RequiredArgument]
            public InArgument<int> SecondNumber { get; set; }
            [Category("Output")]
            public OutArgument<int> ResultNumber { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
            }
    Das Attribut <DisplayName(" ")> ist die Beschriftung, die vor dem Eingabefeld im Eigenschaftenbereich in Studio angezeigt wird. Das <Description(" ")> -Attribut ist der Text der QuickInfo, die beim Darüberfahren mit der Maus angezeigt wird.


    Das Attribut <ReguiredArgument> ist erforderlich, wenn ein deklariertes Element für die Eingabe obligatorisch sein soll. Wenn es nicht ausgefüllt wird, wird in der Titelleiste der Aktivität ein Warnsymbol angezeigt.
  12. Fügen Sie die Funktion in der überschriebenen Funktion <Execute( )> hinzu. In unserem Fall sieht es so aus:
    protected override void Execute(CodeActivityContext context)
    {
        var firstNumber = FirstNumber.Get(context);
      var secondNumber = SecondNumber.Get(context);
      
      var result = (int)Math.Pow(firstNumber + secondNumber, 2);
      ResultNumber.Set(context, result);
    }protected override void Execute(CodeActivityContext context)
    {
        var firstNumber = FirstNumber.Get(context);
      var secondNumber = SecondNumber.Get(context);
      
      var result = (int)Math.Pow(firstNumber + secondNumber, 2);
      ResultNumber.Set(context, result);
    }

(Optional) Erstellen einer Designer-Schnittstelle

Wenn Sie keine Designeroberfläche für Ihre Aktivität möchten, können Sie zum Abschnitt Bibliothekserstellung springen.

Wichtig:

Um eine Designeroberfläche zu erstellen, muss die Komponente „Windows Workflow Foundation“ in Visual Studio installiert sein. Wenn Sie die Komponente nicht aus dem Visual Studio-Installationsprogramm ausgewählt haben, können Sie sie wie folgt hinzufügen:

  • Klicken Sie in Visual Studio auf das Menü Extras und wählen Sie Tools und Funktionen abrufen...aus. Das Fenster Visual Studio-Installer wird angezeigt.
  • Wechseln Sie zur Registerkarte Einzelne Komponenten und suchen Sie nach der Komponente Windows Workflow Foundation . Sie befindet sich im Abschnitt Entwicklungsaktivitäten .
  • Aktivieren Sie das Kontrollkästchen vor der Komponente „ Windows Workflow Foundation“ und klicken Sie auf Ändern. Die erforderliche Komponente wird installiert.


  1. Klicken Sie im Bereich Eigenschaften mit der rechten Maustaste auf das Projekt (in unserem Fall ist das Projekt MathSquareOfSum). Das Kontextmenü wird angezeigt.
  2. Wählen Sie unter Element hinzufügen die Option Neues Element…. Das Fenster Neues Element hinzufügen wird angezeigt.
  3. Wählen Sie Workflow unter der Kategorie Installiert im linken Bereich. Alle zugehörigen Elemente werden angezeigt.
  4. Wählen Sie Aktivitätsdesigner aus und klicken Sie auf Hinzufügen , um das Element in das Projekt aufzunehmen.


    Das Aktivitätsdesigner -Element wird hinzugefügt und die entsprechende .xaml -Datei wird sofort geöffnet. Sie sollte folgendermaßen aussehen:


  5. Ersetzen Sie den vorhandenen Aktivitätsdesigner- Code durch Folgendes:
    <sap:ActivityDesigner x:Class="MathSquareOfSum.MathSqSumDesigner"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:s="clr-namespace:System;assembly=mscorlib"
        xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
        xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
        xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
        <a href="sap:ActivityDesigner.Resources">sap:ActivityDesigner.Resources</a>
            <ResourceDictionary>
                <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
            </ResourceDictionary>
        </sap:ActivityDesigner.Resources>
        <DockPanel Width="300">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="90"></ColumnDefinition>
                    <ColumnDefinition Width="210"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition></RowDefinition>
                    <RowDefinition></RowDefinition>
                    <RowDefinition></RowDefinition>
                </Grid.RowDefinitions>
                <TextBlock Grid.Row="0" Grid.Column="0" Text="First Number"></TextBlock>
                <sapv:ExpressionTextBox Grid.Row="0" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter first number" Expression="{Binding Path=ModelItem.FirstNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
                <TextBlock Grid.Row="1" Grid.Column="0" Text="Second Number"></TextBlock>
                <sapv:ExpressionTextBox Grid.Row="1" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter second number" Expression="{Binding Path=ModelItem.SecondNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
                <TextBlock Grid.Row="2" Grid.Column="0" Text="Result"></TextBlock>
                <sapv:ExpressionTextBox Grid.Row="2" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="The sum of the numbers" UseLocationExpression="True" Expression="{Binding Path=ModelItem.ResultNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=Out, Mode=TwoWay}" />
            </Grid>
        </DockPanel>
    </sap:ActivityDesigner><sap:ActivityDesigner x:Class="MathSquareOfSum.MathSqSumDesigner"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:s="clr-namespace:System;assembly=mscorlib"
        xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
        xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
        xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
        <a href="sap:ActivityDesigner.Resources">sap:ActivityDesigner.Resources</a>
            <ResourceDictionary>
                <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
            </ResourceDictionary>
        </sap:ActivityDesigner.Resources>
        <DockPanel Width="300">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="90"></ColumnDefinition>
                    <ColumnDefinition Width="210"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition></RowDefinition>
                    <RowDefinition></RowDefinition>
                    <RowDefinition></RowDefinition>
                </Grid.RowDefinitions>
                <TextBlock Grid.Row="0" Grid.Column="0" Text="First Number"></TextBlock>
                <sapv:ExpressionTextBox Grid.Row="0" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter first number" Expression="{Binding Path=ModelItem.FirstNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
                <TextBlock Grid.Row="1" Grid.Column="0" Text="Second Number"></TextBlock>
                <sapv:ExpressionTextBox Grid.Row="1" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter second number" Expression="{Binding Path=ModelItem.SecondNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
                <TextBlock Grid.Row="2" Grid.Column="0" Text="Result"></TextBlock>
                <sapv:ExpressionTextBox Grid.Row="2" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="The sum of the numbers" UseLocationExpression="True" Expression="{Binding Path=ModelItem.ResultNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=Out, Mode=TwoWay}" />
            </Grid>
        </DockPanel>
    </sap:ActivityDesigner>
    Das neu definierte Layout für die Aktivität sollte nun folgendermaßen aussehen:


  6. Klicken Sie mit der rechten Maustaste auf die Aktivität (in unserem Fall ActMathSquareOfSum) und wählen Sie im Menü Hinzufügen die Option Klasse... aus. Das Fenster Neues Element hinzufügen wird angezeigt.
  7. Das Klassenelement ist bereits ausgewählt. Sie müssen sie jetzt nur noch in DesignerMetadata.cs umbenennen und Hinzufügen auswählen. Die neue Klasse wird nun der Aktivität hinzugefügt und auf einer neuen Registerkarte geöffnet.


  8. Fügen Sie den folgenden Inhalt in der neu erstellten DesignerMetadata- Klasse hinzu:
    using MathSquareOfSum;
    using System.Activities.Presentation.Metadata;
    using System.ComponentModel;
    namespace ActMathSquareOfSum
    {
        public class DesignerMetadata : IRegisterMetadata
        {
            public void Register()
            {
                AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();
                attributeTableBuilder.AddCustomAttributes(typeof(MathSqSum), new DesignerAttribute(typeof(MathSqSumDesigner)));
                MetadataStore.AddAttributeTable(attributeTableBuilder.CreateTable());
            }
        }
    }using MathSquareOfSum;
    using System.Activities.Presentation.Metadata;
    using System.ComponentModel;
    namespace ActMathSquareOfSum
    {
        public class DesignerMetadata : IRegisterMetadata
        {
            public void Register()
            {
                AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();
                attributeTableBuilder.AddCustomAttributes(typeof(MathSqSum), new DesignerAttribute(typeof(MathSqSumDesigner)));
                MetadataStore.AddAttributeTable(attributeTableBuilder.CreateTable());
            }
        }
    }
  • (Optional) Erstellen einer Designer-Schnittstelle

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo
Vertrauen und Sicherheit
© 2005–2025 UiPath. Alle Rechte vorbehalten