Я создал универсальный класс для создания экземпляра другого неизвестного класса.
Мы передаем имя класса во время выполнения через приведенный ниже код, и у нас уже есть класс с конструктором параметров, поэтому я передаю аргумент для создания экземпляра класса через активатор.
Однако, когда я запускаю приведенный ниже код, он выдает следующую ошибку:
'Конструктор типа 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; }
}
}