我有一个类DocumentGenerator,它包装了一个MemoryStream。 因此,我在该类上实现了IDisposable。 然而,我看不到如何/在哪里可以释放它。 这是我的当前代码,在MVC中执行文件下载:using (DocumentGenerator dg = Documen...
以下是一个假设的场景。 我有非常多的用户名(比如说10,000,000,000,000,000,000,000。是的,我们已经进入了星际时代 :))。每个用户都有自己的数据库。我需要遍历用户列表,并对每个数据库执行一些SQL语句,并打印结果。 由于我学习了函数式编程的好处,并且因为我处理了...
如果我有一个像这样的using块的方法... public IEnumerable<Person> GetPersons() { using (var context = new linqAssignmentsDataContext()) ...
昨天,在我们的代码库上运行 Visual Studio 代码分析后,以下代码被标记为问题: using (var stringReader = new StringReader(someString)) { using (var reader = XmlReader.Create(s...
我完全清楚使用using语句是处理IDisposable的方式。请不要在评论中重复这个建议。 当C# .NET 4.5(或更高版本)应用程序关闭时,没有正确处理的IDisposable会发生什么情况? 我知道有些类有终结器来处理未托管的资源。 但是,假设我有一个控制台应用程序,其中包含一...
以下是我认为被推荐的经典IDisposable实现:~SomeClass() { Dispose(false); } public void Dispose() { GC.SuppressFinalize(this); Dispose(true); } protec...
我有一个类,实现了IDisposable接口以处理私有变量_MailMessage。同样的类有一个异步方法,利用了私有的IDisposable变量,即async public Task<bool> Send。我的问题是:普通的IDisposable实现会在异步方法完成后处理私有变量...
在将可处理对象传递给其他对象的方法或构造函数时,是否有关于谁应该调用Dispose()的指南或最佳实践呢? 以下是一些例子,说明我的意思。 将IDisposable对象传递给方法(方法是否应在完成后对其进行处理?):public void DoStuff(IDisposable dispo...
看到这个。为什么要显式地将其转换为IDisposable?这只是一种简写,以确保在退出using块时调用IDisposable吗?using (proxy as IDisposable) { string s = proxy.Stuff() ...
我的数据库管理员说有太多连接处于打开状态,他认为是我的 .net 代码没有关闭这些连接。 我正在使用 LINQ 查询和 EF Code First。 示例方法: public List<Stuff> GetStuff() { var db = new DBCont...