2016-02-07 3 views
2

Можно ли обеспечить, что каждый разработчик проекта VS, который использует определенный метод (который возвращает сеанс Nhibernate), будет принудительно применен шаблон использования. Например: Как обеспечить использование ключевого слова using на ресурсе

 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; 
     } 
Я хочу, чтобы гарантировать, что каждый разработчик, который вызывает этот метод окружает его с помощью заявления, в противном случае он будет рассматриваться как ошибка по Visual Studio и не будет компилироваться. (Или, может быть, какой-то инструмент, который анализирует управляемый код). Должны быть использованы только в следующих случаях:
using (var session = Nh.GetSession()) 
{ 
    //use the session 
} 

ответ

1

Можно ли гарантировать, что каждый разработчик в проекте VS, который использует определенный метод (который возвращает NHibernate сессии) будет принудил с помощью шаблон?

Простой ответ: нет.

Более широкий вопрос: можно ли предупредить пользователя о том, что они не удаляют объект Disposable перед тем, как выйти из сферы действия. CodeRush и FxCop предоставляют какие-то предупреждения в этом отношении.

Я не вижу такого предупреждения из коробки даже с последней версией resharper. Here и here - некоторые обсуждения по resharper.