如何确保在资源上使用 using 关键字
本文关键字:using 关键字 资源 何确保 确保 | 更新日期: 2023-09-27 18:33:37
是否可以确保使用特定方法(返回 Nhibernate 会话)的 VS 项目中的每个开发人员都将强制执行使用模式。 例如:
public static ISession GetSession()
{
ISessionFactory holder = ActiveRecordMediator.GetSessionFactoryHolder();
ISessionScope activeScope = holder.ThreadScopeInfo.GetRegisteredScope();
ISession session = null;
var key = holder.GetSessionFactory(typeof(ActiveRecordBase));
if (activeScope == null)
{
session = holder.CreateSession(typeof(ActiveRecordBase));
}
return session;
}
我想确保调用此方法的每个开发人员都用 using 语句将其包围,否则它将被 Visual Studio 视为错误并且无法编译。(或者可能通过一些分析托管代码的工具)。 只能按以下方式使用:using (var session = Nh.GetSession())
{
//use the session
}
是否有可能确保VS项目中的每个开发人员 使用某种方法(返回 Nhibernate 会话)将是 强制使用模式?
简单的答案是否定的。
更广泛的问题是,如果用户在超出范围之前没有处理任何一次性对象,是否可以警告用户。CodeRush和FxCop在这方面提供了某种警告。
即使使用最新的锐化器版本,我也没有看到这样的开箱即用警告。这里和这里有一些关于锐化器的讨论。