que tienen una clase de gestor de sqlConnection así:Usando la instrucción 'using' de C# con la función de un objeto personalizado, ¿necesito implementar IDisposable?
public class SQLConn {
public string connStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
private SqlConnection sqlConn;
public SqlConnection Connection()
{
sqlConn = new SqlConnection(connStr);
return sqlConn;
}
public void Open()
{
sqlConn .Open();
}
}
Si utilizo una función con el "uso de la declaración como:
var conn = new SQLConn();
using (conn.Connection())
{
String query = "Select * from table";
objSql = new SqlCommand(query, conn.Connection());
conn.Open();
DoSomething();
}
¿La instrucción using disponer de la conexión de forma automática desde conn.Connection()
retornos un objeto SqlConnection? O bien, ¿tengo que implementar IDisposable y un método Dispose personalizado en la clase SqlConn?
¿Es esto incluso una buena manera? Estoy trabajando con el código heredado y todavía no puedo usar un ORM, pero ¿hay alguna manera de simplificar este patrón existente para administrar/crear conexiones SQL?
El último tipo de la expresión * * Qué necesitan para implementar IDisposable: Error 1 \t \t 'Bar': tipo utilizado en una instrucción using debe ser convertir implícitamente a 'System.IDisposable –
Hmmm, interesante, es que el cambio de comportamiento de las versiones anteriores del compilador, o simplemente lo extraño, ¿lo entendiste todo el tiempo? – leppie
No estoy al tanto de un cambio (pero no he visto la especificación 1.2 últimamente). ¿Estás pensando en 'foreach'? donde el enumerador * podría * ser desechable (y si es así, está dispuesto), pero no tiene por qué serlo. ¿O tal vez el hecho de que el valor devuelto sea nulo? –