如果从 ASP .NET MVC 控制器调用 GetMethod,则找不到公共静态方法。(从控制台应用程序可以正常工作)。
为了解决这个虚拟SaveEntityGenericWrapper
方法被使用。
如何SaveEntityGenericWrapper
从代码中删除?
如果从 ASP .NET MVC 2 控制器调用,为什么GetMethod("SaveEntityGeneric")
返回null
但有效?GetMethod("SaveEntityGenericWrapper")
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 }
}