GetMethod не находит общедоступный статический метод при вызове из контроллера ASP .NET MVC.(Из консольного приложения все в порядке).
Для решения этого фиктивного метода SaveEntityGenericWrapper
используется.
Как удалить SaveEntityGenericWrapper
из кода?
Почему GetMethod("SaveEntityGeneric")
возвращает null
, но GetMethod("SaveEntityGenericWrapper")
работает, если вызывается из контроллера ASP .NET MVC 2?
Как сделать SaveEntityGeneric
частным, если в MVC2 используется частичное доверие?
public class EntityBase() {
public void SaveEntity(EntityBase original)
{
var method = GetType().GetMethod("SaveEntityGenericWrapper");
// why this line returns null if called from ASP .NET MVC 2 controller:
// method = GetType().GetMethod("SaveEntityGeneric");
var gm = method.MakeGenericMethod(GetType());
gm.Invoke(this, new object[] { original, this });
}
// Dummy wrapper reqired for mvc reflection call only.
// How to remove it?
public List<IList> SaveEntityGenericWrapper<TEntity>(TEntity original, TEntity modified)
where TEntity : EntityBase, new()
{
return SaveEntityGeneric<TEntity>(original, modified);
}
public static List<IList> SaveEntityGeneric<TEntity>(TEntity original, TEntity modified)
where TEntity : EntityBase, new()
{ ... actual work is performed here }
}