6/12/2007

Создание зависимостей между файлами в проекте

Например, есть большой проект с большим количеством файлов, некоторые из которых - это многие сотни строк кода. Чтобы упростить работу с такими "монстрами", можно определенные методы поместить в регионы (т.е. между #region и #endregion). Это помогает, но регионов тоже бывает слишком много. В таком случае можно объявить класс как partial и вынести часть методов в отдельный файл. Например, часть содержимого ObjectVisualize.cs вынести в ObjectVisualize.Interop.cs.
На первый взгляд - это удобно, но при этом количество файлов в Solution Explorer увеличивается - это "минус". Если файл разбит на несколько частей, и их надо перекинуть в другой проект, то приходится помечать каждый файл и после этого перекидывать. Что не очень удобно. Но есть еще один способ - создать зависимость между файлами. Например, для ObjectVisualize.cs и ObjectVisualize.Interop.cs надо:

  1. открыть .csproj-файл проекта в текстовом или xml редакторе
  2. найти тег <Compile Include="ObjectVisualize.Interop.cs"> и в него добавить тег <DependentUpon>ObjectVisualizer.cs</DependentUpon>
  3. сохранить файл
  4. в VS.IDE в появившемся диалоге "File Modification Detected" нажать "Reload".
В результате в Solution Explorer у ObjectVisualize.cs слева появится [+] и подфайл ObjectVisualize.Interop.cs. Это очень удобно. Cтранно, что в Visual Studio 2005 на уровне UI нет встроенной возможности по созданию зависимостей между файлами c partial классами, но воможно появится в следующей версии.