全球人是邪恶的,对吧?至少我读到的所有内容都是这样说的,因为某些事情可能会在任何时候改变全局的状态。
但是,我有一个关于类参数的 DB 对象。下面的属性是在 MS Access 或 SQL 中自动工作的包装类的一个实例——因此它不是 EF 或其他一些 ORM。
Public Property db As New DBI.DBI(DBI.DBI.modeenum.access, String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0} ;Persist Security Info=True;Jet OLEDB:Database Password=""lkjhgfds8928""", GetRpcd("c:\cms")))
代码本身确实具有用于异常处理的 PostSharp,所以我认为我可以通过记录它们并在它为 Null 时重新初始化 DB 来有条件地处理 oledb 错误。
到目前为止,解决方案一直是不断地将 db 作为参数传递给每个需要它的类。大多数数据类都有一个共享的 observablecollection,它是由单独实现 inotifyproperty changed 的结构构建的。其中之一是异步构建的。集合属性在触发私有 Async buildCollection 子之前检查它是否为空。
鉴于我们还没有使用依赖注入,因为我需要学习它;全球财产有那么糟糕吗?数据被拉入或保存的任何地方都需要 Db。我根本不需要它的唯一地方是视图及其背后的代码。
这不是一个面向客户的项目,但它确实需要可靠。
任何建议都感激不尽!!