Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将两个分部类分成两个文件,其中一个是另一个的子项,可以展开_C#_Visual Studio 2010_Partial Classes - Fatal编程技术网

C# 将两个分部类分成两个文件,其中一个是另一个的子项,可以展开

C# 将两个分部类分成两个文件,其中一个是另一个的子项,可以展开,c#,visual-studio-2010,partial-classes,C#,Visual Studio 2010,Partial Classes,我添加了两个同名的分部类: public partial class SomePartial { } 现在我有两个独立的文件 我想让它们在项目中显示为单个项,可以像在WebForms项目中一样展开,其中有Form.cs和Form.Designer.cs。在同一个文件中有一个分部类没有多大意义,IMHO。分部类的主要目标是允许更多的人使用同一个类,如果有人从代码repo中签出这个文件,那么这个工具就不存在了。 另一个目标是使手动代码远离自动生成的代码,以便在发生重新生成时不会丢失。 也就是说,您

我添加了两个同名的分部类:

public partial class SomePartial
{
}
现在我有两个独立的文件


我想让它们在项目中显示为单个项,可以像在WebForms项目中一样展开,其中有Form.cs和Form.Designer.cs。

在同一个文件中有一个分部类没有多大意义,IMHO。分部类的主要目标是允许更多的人使用同一个类,如果有人从代码repo中签出这个文件,那么这个工具就不存在了。 另一个目标是使手动代码远离自动生成的代码,以便在发生重新生成时不会丢失。 也就是说,您可以使用代码区域来实现您想要的

#region Partial 1
// Code here
#endregion 

#region Partial 2
// Code here
#endregion

可以通过手动编辑.csproj文件来完成此操作

右键单击项目并选择卸载项目,然后再次右键单击它并选择Edit.csproj

这是一个.xml文件,用于描述项目及其依赖项。您需要找到描述分部类文件的条目,例如

<ItemGroup>
    <Compile Include="MyPartialClass.cs" />
    <Compile Include="MyPartialClass.Extension.cs" />
</ItemGroup>

保存文件,然后重新加载项目。

Visual Studio也可以根据命名约定自动执行此操作。如果创建两个文件Foo.cs和Foo.designer.cs,它将自动嵌套它们。但是,如果您想要的不是designer,这将是一种方式。问题标题有点不幸,因为您实际上不希望它们位于同一个文件中,如果我理解正确,您只希望一个文件显示为另一个文件的子项。困惑可能是问题被否决的原因。我修正了。谢谢!这个问题的措辞不是很好,但我不认为这就是OP的意思。我把问题的名字改了,因为我犯了错误
<ItemGroup>
    <Compile Include="MyPartialClass.cs" />
    <Compile Include="MyPartialClass.Extension.cs">
        <DependentUpon>MyPartialClass.cs</DependentUpon>
    </Compile>
</ItemGroup>