How to use a Type variable in a generic method call (C#)

前端 未结 2 331
南旧
南旧 2021-01-25 08:08

I have a Type variable t passed into a method, and I want to use it as a generic parameter when calling IQueryable.Join like the following



        
相关标签:
2条回答
  • 2021-01-25 08:37

    Basically you've got to call the method with reflection:

    • Get the generic method template with Type.GetMethod
    • Call MakeGenericMethod passing in your 4 type parameters
    • Invoke the method passing in the regular arguments

    It's a pain :(

    0 讨论(0)
  • 2021-01-25 08:40

    I'm not sure of the details of your "type variable," but if the variable is already a generic parameter to the method, you can use it as a generic parameter to Join also:

    public void MyMethod<T>()
    {
        // do some stuff to get queryResult, then
        queryResult.Join<Type1, Type2, T, Type3>(items, outerSelector, innerSelector, (a, b) => something);
    }
    
    0 讨论(0)
提交回复
热议问题