我是Web服务,C#和.NET的新手。 我想在我的web方法中使用连接对象以便在数据库上写入数据,但是我没有在实例化这个对象的地方,实例化它然后在web方法中将其销毁是非常荒谬的。 我希望每次都可以访问我的连接实例,所以有一种构造函数或其他东西可以正确实现。
答案 0 :(得分:3)
您需要在Web方法中实例化数据库连接类。我认为在你的网络方法中实例化这样一个对象并不荒谬:
object-orientated
语言。没有创造物体,你不会取得多少成就;和我建议使用这样的方法来确保在webservice调用之后释放连接:
// This example uses SQL-Server connections, but most
// ADO.NET database drivers are similar.
using(SqlConnection conn = new SqlConnection(MyConnStr))
{
UseConnection(conn);
}
// connection released to pool here automatically.
答案 1 :(得分:3)
我知道你的意思:你不想在每种方法中重复连接管理代码。那确实是荒谬的。
我这样做:我使用this technique创建每请求连接。当WCF呼叫结束时,我破坏连接。
所以在通话过程中我可以依赖这个连接。它将被正确清理。
不幸的是,WCF没有HttpContext.Items内置的等价物,所以我们不得不在使用扩展时破解它。