How to to dynamically provide T type of a generic method - C#