В некоторых унаследованных проектах на моей работе я вижу множество операторов использования, ссылающихся на dbContext:
using (myContext dal = new myContext())
{
dal.DoSomeDatabaseThing
}
Я считаю, что это довольно стандартно, и не вижу проблем.Однако во многих местах я вижу что-то вроде этого:
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(...)
{
sqlBulkCopy.DestinationTableName = myTable;
sqlBulkCopy.BatchSize = 10000;
}
Вот уже много лет я понимаю, что объект, на который ссылается оператор using, является неизменным.Действительно, документация MSDN гласит: «Внутри блока using объект доступен только для чтения и не может быть изменен или переназначен».Тем не менее, блоки кода, подобные приведенному выше, работают нормально.
Что мне здесь не хватает?Ясное присвоение значений свойствам объекта - это изменение объекта, нет?Я говорил с лидером команды, но он казался не обеспокоенным - если это не сломано, не исправляйте это - вещь вещи.Но это меня теряет!
Есть мысли?Спасибо