【发布时间】:2011-11-11 00:50:35
【问题描述】:
我不得不修改大量代码来为一堆表适配器设置 SqlCe 数据库连接。我想通过创建一个通用方法来包装每个表适配器的创建,从而避免所涉及的重复并最大限度地减少我错过更新表适配器的机会。不幸的是,表适配器不是从单个基类派生的,每个适配器都有自己的 Connection 属性。通过将新的表适配器分配给 dynamic 我可以编译它。这是一个好方法吗?在使用 dynamic 时我应该注意哪些陷阱?
protected void TableAdapter<T>(Action<T> action) where T : IDisposable, new()
{
using (var connection = new SqlCeConnection(ConnectionString))
using (dynamic tableAdapter = new T())
{
tableAdapter.Connection = connection;
action(tableAdapter);
}
}
【问题讨论】: