Как установить тип аргумента как общий список объектов типа - PullRequest
0 голосов
/ 21 мая 2019

Я создал файл библиотеки классов, используя c # .net. Когда я вызываю метод, он показывает приведенную ниже ошибку, как уже упоминалось. Как правильно определить аргумент списка типа объекта, чтобы исправить эту ошибку. Я приложил свой код и ошибку для справки.

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Activities;
using System.ComponentModel;
using Microsoft.Office.Interop.Word;


namespace ReadWord
{
    class MyObject
    {
        public string Name { get; set; }
        public string Value { get; set; }
        public string Title { get; set; }
        public string Tag { get; set; }
    }
    public class ReadWord : CodeActivity
    {
[Category("Output")]
        public OutArgument<System.Collections.Generic.List> FieldValueOnly { get; set; }

        protected override void Execute(CodeActivityContext context)
        {
            var a = DocPath.Get(context);
            var list = new List<MyObject>();
            Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document doc = word.Documents.Open(a);

            doc.Activate();
            foreach (InlineShape shape in doc.InlineShapes)
                {
                    if (shape.OLEFormat != null && shape.OLEFormat.ClassType == "Forms.TextBox.1")
                    {
                        //Console.WriteLine(shape.OLEFormat.Object.Name + " :" + shape.OLEFormat.Object.Value);
                        //text += shape.OLEFormat.Object.Value;
                        //ArrField[shape.OLEFormat.Object.Name] = shape.OLEFormat.Object.Value;
                        list.Add(new MyObject { Name = shape.OLEFormat.Object.Name, Value = shape.OLEFormat.Object.Value, Title = "", Tag = ""});
                    }

                }
                FieldValueOnly.Set(context, list);
            }
            word.Quit();
         }
       }
    }

Я получаю это сообщение об ошибке «System.InvalidOperationException: значение типа« System.Collections.Generic.List`1 [ReadWord.MyObject] »не может быть установлено в местоположение с именем« FieldValueOnly », поскольку оно является расположение типа 'System.Collections.Generic.List'. '

...