Я следующий пример кодаСоздание родового объекта класса с помощью CreateInstance
public interface ITest
{
string abc { get; set; }
}
public class GenericController<T> : Controller where T : class, ITest, new()
{
public string abc { get; set; }
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
}
Теперь пытается создать объект с следующий код дает мне ошибку -
Type typeObject = typeof(Employee);
Type object1 = typeof(GenericController<>).MakeGenericType(typeObject);
controller = (IController)Activator.CreateInstance(object1);
Ошибка приведенной здесь
GenericArguments [0], 'MvcApplication2.Controllers.Employee', в 'MvcApplication2.Controllers.GenericController`1 [T]' нарушает ограничение типа T.
Извлечение интерфейса ITest из класса GenericController работает правильно. Мне нужен этот интерфейс, поэтому введите тип объекта контроллера в интерфейс. Я могу установить несколько свойств вновь созданного объекта.
Как исправить эту проблему.
-Rajesh
Я нашел решение для того же. Класс должен быть написан следующим классом операторов открытый класс GenericController: Контроллер, ITest, где T: класс, новый() -Rajesh –
user1872862