如何确保在资源上使用 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   
}

如何确保在资源上使用 using 关键字

是否有可能确保VS项目中的每个开发人员 使用某种方法(返回 Nhibernate 会话)将是 强制使用模式?

简单的答案是否定的。

更广泛的问题是,如果用户在超出

范围之前没有处理任何一次性对象,是否可以警告用户。CodeRush和FxCop在这方面提供了某种警告。

即使使用最新的锐化器版本,我也没有看到这样的开箱即用警告。这里和这里有一些关于锐化器的讨论。