问题列表 - 第4180页

单身人士与终结者但不是IDisposable

这就是我对"CLR via C#","Effective C#"和其他资源的IDisposable和终结器的理解:

  • IDisposable用于确定性地清理托管和非托管资源.
  • 负责非托管资源的类(例如文件句柄)应该实现IDisposable并提供终结器以保证它们被清除,即使客户端代码没有在实例上调用Dispose().
  • 仅负责托管资源的类永远不应实现终结器.
  • 如果你有一个终结器,那么你必须实现IDisposable(这允许客户端代码做正确的事情并调用Dispose(),而终结器可以防止泄漏资源,如果他们忘记).

虽然我理解并推理上述所有内容,但有一种情况我认为打破这些规则是有意义的:负责非托管资源的单例类(例如提供对特定文件的单点访问) ).

我认为在单例上使用Dispose()方法总是错误的,因为单例实例应该在应用程序的生命周期中存在,如果任何客户端代码调用Dispose(),那么你就被填充了.但是,您需要一个终结器,以便在卸载应用程序时,终结器可以清理非托管资源.

因此,在我看来,使用没有实现IDisposable的终结器的单例类似乎是一件合理的事情,但这种类型的设计与我所理解的最佳实践相反.

这是一种合理的方法吗?如果没有,为什么不呢?有哪些优越的选择?

.net c# singleton idisposable

16
推荐指数
2
解决办法
3963
查看次数

关于ASP.NET,Mono有任何实际限制吗?

我是一名初级开发人员,去过大学的最后一年.我主要是面向asp.net的,甚至还有那种语言的兼职工作.我有兴趣转换到Linux,因为Visual Studio不支持在Mono中编写我的代码.

我应该注意Mono中是否存在明显的局限性(关于ASP.NET)?

linux asp.net mono

6
推荐指数
2
解决办法
803
查看次数

在Visual Studio中组合多个配置文件

我在Visual Studio 2008中有一个包含多个C#项目的解决方案.每个项目都有自己的配置文件(App.config和Settings.settings).这在结构上是有意义的,因为每个模块都是自主的,并且在许多不同的解决方案中使用.

我的问题是,当我编译解决方案时,只包含启动项目(或包含可执行文件的项目)的配置文件.对于其他模块,配置设置将编译到DLL中.所以我的问题是,在Visual Studio中是否有任何方法可以组合多个配置文件,或链接它们以便在运行时更改DLL的设置?

c# configuration app-config configuration-files visual-studio-2008

9
推荐指数
2
解决办法
1万
查看次数

是否可以在保留历史记录的同时将单个文件从一个SVN存储库迁移到另一个SVN存储库?

我在我的个人SVN存储库中启动了一个小应用程序.它获得了足够的兴趣,值得将开发转移到共享组存储库.包括其历史记录的应用程序(只有一个文件)是否可以迁移到组存储库?

svn

5
推荐指数
1
解决办法
1305
查看次数

对于负载均衡的ASP.NET应用程序,文件存储的最佳解决方案是什么?

我们有一个ASP.NET文件传递应用程序(内部用户上传,外部用户下载),我想知道分发文件的最佳方法是什么,所以我们只有将应用程序的文件存储在一个文件上才会出现单点故障服务器.我们将应用程序的负载分布在多个前端Web服务器上,这意味着对于文件存储,我们不能简单地在Web服务器上本地存储文件.

我们当前的设置让我们指向主数据库/文件服务器上的共享.在一天中,我们将主服务器上共享的内容复制到故障转移.这个scneario确保我们有一台辅助计算机上有相当新的数据但我们希望能够从主服务器故障转移到故障转移,然后再返回,而不会丢失前端应用程序中的数据或错误.现在,这是一个相当手动的过程.

可能的方案包括:

  • 的Robocopy.很简单,但它不容易让您在没有多个作业一直运行的情况下进行故障转移和返回(来回复制数据)
  • 将文件存储在SQL Server 2005中的BLOB中.我认为这可能是性能问题,尤其是对于大文件.
  • 在SQL Server 2008中使用FILESTREAM类型.我们镜像我们的数据库,所以这看起来很有希望.有人对此有经验吗?
  • 微软的分布式文件系统.由于我们只有2台服务器需要管理,因此从我读过的东西看起来有些过分.

那么你通常如何解决这个问题,什么是最好的解决方案?

sql-server asp.net infrastructure file

9
推荐指数
1
解决办法
1626
查看次数

在MySQL中,UNIQUE索引是否区分大小写?

在MySQL中,索引(索引)是否被定义为UNIQUE区分大小写?

mysql indexing key unique case-sensitive

39
推荐指数
2
解决办法
2万
查看次数

Ruby on Rails最好的论坛资源是什么?

在过去,我使用RailsForum.com作为资源,但最近我遇到了太多的垃圾邮件而且没有足够的有用帖子.当然只是我的观点.

那么,Rails开发人员将什么用作平台的论坛资源?

ruby ruby-on-rails

0
推荐指数
1
解决办法
439
查看次数

加密开源桌面应用程序的磁盘密码

是否可以在本地系统(Windows XP)上存储只能由应用程序本身访问的密码?

我的本能回答是"不".即使使用某种散列或加密,我也会认为只要源代码可用,那么确定的搜索者总是可以使用它来检索密码.

我正在开发一个个人开源爱好项目,我想让用户可以选择在磁盘上存储密码,这样他们每次使用软件时都不需要输入密码.可以存储的密码的一个示例是用于在其网络的代理服务器上进行认证的密码.

Stack Overflow上有一些相关的问题,最合适的解决方案就像使用像DPAPI这样的操作系统服务.

基本前提是否正确,只要软件可以在没有任何用户输入的情况下检索密码,并且源代码是开源的,那么密码总是可以由(在技术上和故意倾斜的)路人可以检索到?

windows security encryption passwords password-storage

3
推荐指数
1
解决办法
582
查看次数

Windows上的Clojure IDE?

如何在Windows系统上使用Clojure进行开发?

windows ide clojure

44
推荐指数
8
解决办法
2万
查看次数

Delphi,可以只为特定的父表单创建表单模式吗?

我有一个应用程序,其中有一个主要的背景形式,从那里用户只能维护系统的不同部分的非模态形式.非模态窗体会覆盖CreateParams方法,因此每个窗体都会在启动任务栏中显示一个按钮:

procedure TfmMaterialsPlanning.CreateParams(var Params: TCreateParams);
begin
   inherited;
   //create a new window on the task bar when this form is created
   Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;
Run Code Online (Sandbox Code Playgroud)

实际上,用户可以打开一个维护"苹果"的非模态表单,另一个维持"橙子"的非模态表单,并使用开始菜单栏轻松切换两者.

但是,如果他们从"苹果"表单中打开一个模态表单,例如设置选项,首选项等,那么在关闭模态表单之前,他们不能使用"橙子"表单.

是否有可能只为父表单创建一个模态表单模态?因此,如果他们打开Apple的选项表格,他们不能使用苹果维护表格,但仍然可以使用Oranges维护表格?

forms delphi modal-dialog

11
推荐指数
2
解决办法
5214
查看次数