将类型传递给IDBConnection Get<;T>;()
本文关键字:lt gt Get 类型 IDBConnection | 更新日期: 2023-09-27 18:28:18
是否可以在运行时将类型传递给IDBConnection.Get<T>
扩展?
例如,我有像Countrys、States、Cities这样的类,以及一个包含其中任何一个的对象变量实例。我想把类类型传递给Get<T>
方法
伪码:
var myobject = _somedata; //it could be of type countries, states, cities, etc...
var q = sqlConn.Get<typeof(myobject)>()
有没有办法做到这一点?
你可以,但你不想。结果代码很糟糕。
相反,请尝试编写自己的扩展方法,该方法使用参数的类型。
public static T GetLike<T>(this IDbConnection conn, T likeType)
{
return conn.Get<T>();
}
然后你可以简单地调用
var q = sqlConn.GetLike(myobject);
编译器将推断出匿名类型。