Метод Activator.createinstance (универсальный тип, args) вызывает исключение - PullRequest
0 голосов
/ 01 июня 2018

Я создал универсальный класс для создания экземпляра другого неизвестного класса.

Мы передаем имя класса во время выполнения через приведенный ниже код, и у нас уже есть класс с конструктором параметров, поэтому я передаю аргумент для создания экземпляра класса через активатор.

Однако, когда я запускаю приведенный ниже код, он выдает следующую ошибку:

'Конструктор типа eDebitCreditNote.Models.GenericClass`1 [[eDebitCreditNote.Models.DC_Header_Vendor, eDebitCreditNote, Version = 1.0.0.0, Культура = нейтральный, PublicKeyToken = null]] 'не найден.'

object[] args = new object[1] { values };
string classname = tblform.HeaderTable;
var sometype = Type.GetType("eDebitCreditNote.Models."+classname);
var genericType = typeof(GenericClass<>).MakeGenericType(new[] { sometype });
var instance = Activator.CreateInstance(genericType,args); 

Общий код класса:

 namespace eDebitCreditNote.Models
    {
     public class GenericClass<T>
    {


        public T ObjectCreate<T>(object[] args)
    {
        return (T)Activator.CreateInstance(typeof(T), args); 

    }


        public IDictionary<string, object> FieldValues { get; set; }

    }
    }
...