the*_*onk 15 .net c# generics reflection
我的DataAccessLayer上有一个FindAll方法,如下所示:
public FindResult<T> FindAll<T>() where T : Entity, new()
Run Code Online (Sandbox Code Playgroud)
和一个客户端代码有一个Type []数组,它需要用来迭代调用FindAll方法,如下所示:
foreach (var type in typeArray)
{
var result = DataAccessLayer.FindAll<type>();
...
Run Code Online (Sandbox Code Playgroud)
但是编译器抱怨"预期的类型或命名空间"..有没有一种简单的方法来解决这个问题?我尝试过type.GetType()或typeof(type),但都没有用.
提前谢谢了!
Luc*_*ero 13
您可能需要使用Reflection来执行此操作,如下所示:
DataAccessLayer.GetType().GetMethod("FindAll<>").MakeGenericMethod(type).Invoke()
Run Code Online (Sandbox Code Playgroud)
此博文可能还包含您需要的信息.