как я могу поймать объект, возвращаемый из DLL (C #) при автоматизации где угодно?

Я хочу создать метабот, чтобы получить имя и возраст студента в качестве объекта Student. Мой метод в библиотеке классов возвращает объект типа ученика. В любой автоматизации в качестве выходных данных используется только несколько типов данных (значение, массив, пароль). Если у вас есть идеи о том, как отловить такой объект в Автоматизации где угодно, дайте мне знать.

Это объектный класс

using System;

namespace TestAADLL
{
    public class Student
    {
        public string name;
        public int age;
        public Student(string n,int a)
        {
           name = n;
           age = a;
        }
    }
}

Это класс, который использует этот объектный класс и возвращает экземпляр. Я хочу поймать этот возвращаемый объект, используя тип данных в автоматизации где угодно.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace TestAADLL
{
    public class Class1
    {
        public Student getStudent()
        {
            Student stud = new Student("Anjanee", 90);
            Console.WriteLine(stud);
            Console.WriteLine(stud.age);
            return stud;
        }       
    }
}

Это ошибка, которую я получил.

произошла ошибка в автоматизации в любом месте

Тип не разрешен для элемента TestAADLL.Student, TestAADLL, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null.

Ошибка в строке 1 логической схемы testlogic.logic. Откройте логику в редакторе логики, чтобы просмотреть действие в строке номер 1.


person Anjanee Nimasha    schedule 18.07.2018    source источник
comment
Ты пробовал? Если да, не могли бы вы предоставить нам код?   -  person Bukk94    schedule 18.07.2018
comment
Пожалуйста, добавьте этот код в сам вопрос! Не в комментариях. Также добавьте код, чтобы показать, как вы улавливаете возвращаемое значение и в чем проблема.   -  person Mukesh Modhvadiya    schedule 18.07.2018
comment
Не могли бы вы вставить ошибку также в виде текста, так как в некоторых средах изображения блокируются?   -  person Mukesh Modhvadiya    schedule 18.07.2018
comment
Я добавил исходный код и рассматриваемую ошибку. спасибо, шокирующий и мукеш   -  person Anjanee Nimasha    schedule 18.07.2018
comment
Большой! Может ли ваш класс Student быть унаследованным от MarshalByRefObject. Посмотрите, решит ли это вашу проблему. открытый класс Студент: MarshalByRefObject.   -  person Mukesh Modhvadiya    schedule 18.07.2018
comment
спасибо, мукеш. ваше решение сработало. теперь объект передается в переменную подсказки. Спасибо большое.   -  person Anjanee Nimasha    schedule 18.07.2018
comment
@AnjaneeNimasha, Рад, что помог :). Я также добавил ответ со страницей документации, так что это может помочь и другим.   -  person Mukesh Modhvadiya    schedule 20.07.2018
comment
да, Мукеш. Это просто супер. заранее, как я вижу, мы не можем выполнить какую-либо задачу, передав объект в автоматизацию куда-либо. мы хотим извлекать информацию отдельно от объекта и хотим возвращать, используя отдельные методы для выполнения работы в Automation Anywhere. потому что автоматизация нигде не является объектно-ориентированной. Это правильно?   -  person Anjanee Nimasha    schedule 20.07.2018


Ответы (1)


MarshalByRefObject, как описано в документации. обеспечивает доступ к объектам через границы домена приложения в приложениях, поддерживающих удаленное взаимодействие.

Поэтому наследование вашего класса Student от MarshalByRefObject, как показано ниже, решит проблему.

public class Student : MarshalByRefObject
person Mukesh Modhvadiya    schedule 18.07.2018