Частичный класс - Visual Studio 2008

Есть ли возможность создавать частичные классы, сгруппированные в обозревателе решений, как это делает VS, с кодом за классами (например, Default.aspx и Default.aspx.cs) .

Я хотел бы создать MyClass.cs и MyClass.partial.cs, и они не должны отображаться как 2 отдельных файла в обозревателе решений.


person chbu    schedule 16.03.2009    source источник
comment
Зачем тогда делать частичный класс? Просто запрограммируйте все это в одном файле.   -  person Ben S    schedule 16.03.2009


Ответы (3)


Я не видел способа сделать это в самой Visual Studio, но это можно сделать, отредактировав файл .csproj. Вам нужно найти место, где файл, который вы хотите отобразить под другим файлом, находится в файле proj, и добавить элемент с содержимым, установленным на имя файла, от которого вы хотите зависеть.

пример:

<Compile Include="MyFile.g.cs">
    <DependentUpon>MyFile.cs</DependentUpon>
</Compile>
person dustyburwell    schedule 16.03.2009

если вы назовете свой файл MyClass.designer.cs, то так и будет.

Есть несколько «волшебных имен», которые работают (я думаю, .xaml.cs - еще одно).

В стороне, я думаю, что частичные классы не должны использоваться ни для чего другого, кроме управления сгенерированным кодом. Если вы обнаружите, что идете по этому пути из-за того, что слишком много кода для поддержки в одном файле, вам следует пересмотреть, почему существует так много кода, и разбить его на более мелкие классы по тем линиям, которые вы собирались разбить в любом случае (я не говорю, что это ваш случай, но это просто совет).

person Denis Troller    schedule 16.03.2009
comment
Вы попали в точку. Мне пришлось работать над огромным проектом с плохим дизайном и очень большим. Я делаю все классы. Он требует рефакторинга, но он не будет выполнен по нескольким (нетехническим) причинам. Поэтому я попытался сделать кошмар менее пугающим. - person chbu; 16.03.2009
comment
Я сочувствую тебе ... В любом случае удачи. - person Denis Troller; 16.03.2009

Не то, что я знаю из. Как правило, цель состоит в том, чтобы поддерживать сгенерированный код (т. Е. Вы не поддерживаете его), поэтому для этой цели все, что вам нужно, - это поместить его в отдельную папку.

person jvenema    schedule 16.03.2009