Как исправить ошибку «Ожидаемый командный постфикс»? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь создать дополнение с помощью команды "mycommand". После создания его с помощью VS 2019 Community Edition и помещения его в папку дополнения G1ANT.Robot / Add-on, он вызывает сбой G1ANT при запуске или отображает сообщение об ошибке, например:

Error Message

Такое же сообщение также существует в файле журнала при сбое G1ANT Studio.

Вот код C # для дополнения:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using G1ANT.Language;

// Please remember to refresh G1ANT.Language.dll in references

namespace G1ANT.Addon.MyAddon1
{
    [Addon(Name = "Addon", Tooltip = "...")]
    [Copyright(Author = "G1ANT LTD", Copyright = "G1ANT LTD", Email = "support@g1ant.com", Website = "www.g1ant.com")]
    [License(Type = "LGPL", ResourceName = "License.txt")]
    //[CommandGroup(Name = "", Tooltip = "")]
    public class Addon : Language.Addon
    {

        public override void Check()
        {
            base.Check();
            // Check integrity of your Addon
            // Throw exception if this Addon needs something that doesn't exists
        }

        public override void LoadDlls()
        {
            base.LoadDlls();
            // All dlls embeded in resources will be loaded automatically,
            // but you can load here some additional dlls:

            // Assembly.Load("...")
        }

        public override void Initialize()
        {
            base.Initialize();
            // Insert some code here to initialize Addon's objects
        }

        public override void Dispose()
        {
            base.Dispose();
            // Insert some code here which will dispose all unecessary objects when this Addon will be unloaded
        }

    }
    [Command(Name = "mycommand", Tooltip = "This is a test command")]
    public class mycommand : Command
    {
        public class Arguments : CommandArguments
        {
            // Enter all arguments you need
            [Argument(Required = true, Tooltip = "Enter some text here")]
            public TextStructure Text { get; set; }

            [Argument(Tooltip = "Result variable")]
            public VariableStructure Result { get; set; } = new VariableStructure("result");
        }

        public mycommand(AbstractScripter scripter) :base(scripter)
        {

        }

        // Implement this method
        public void Execute(Arguments arguments)
        {
            // Do something: for example, display argument text on the screen
            RobotMessageBox.Show(arguments.Text.Value);
            // Set result variable to the calculated text argument
            Scripter.Variables.SetVariableValue(arguments.Result.Value, new TextStructure(arguments.Text.Value));

            // If you need, set another variable to the calculated text argument
            Scripter.Variables.SetVariableValue("other", new TextStructure(arguments.Text.Value));
        }
    }

}

Я следую этому шаблону команды из репозитория G1ANT.Sdk GitHub: ( Ссылка )

1 Ответ

2 голосов
/ 07 октября 2019

Ваш класс mycommand имеет неправильное имя. Требуется назвать его точно так же, как имя команды и добавить постфикс «Command».

Чтобы решить эту проблему, просто переименуйте ваш класс в MyCommandCommand.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...