C# Visual Studio中多个名称空间中的相同类名

C# Visual Studio中多个名称空间中的相同类名,c#,visual-studio,C#,Visual Studio,如何知道在VisualStudio的不同名称空间中是否有重复的类名?显然,我不想手动测试每个类名。我只想编写一个使用反射的单元测试。比如: var duplicateGroups = typeof(SomeTypeInAssembly).GetTypes() .GroupBy(t => t.Name) .Where(g => g.Count() != 1); // Assert that duplicateGroups is empty 确切地说,如何断言集合为空将

如何知道在VisualStudio的不同名称空间中是否有重复的类名?显然,我不想手动测试每个类名。

我只想编写一个使用反射的单元测试。比如:

var duplicateGroups = typeof(SomeTypeInAssembly).GetTypes()
    .GroupBy(t => t.Name)
    .Where(g => g.Count() != 1);
// Assert that duplicateGroups is empty

确切地说,如何断言集合为空将取决于您的测试框架——您还需要确保当测试失败时,它会给您一条有用的失败消息,最好是每个组中的类型列表。

我只编写一个使用反射的单元测试。比如:

var duplicateGroups = typeof(SomeTypeInAssembly).GetTypes()
    .GroupBy(t => t.Name)
    .Where(g => g.Count() != 1);
// Assert that duplicateGroups is empty

确切地说,如何断言集合为空将取决于您的测试框架-您还需要确保当测试失败时,它会给您一条有用的失败消息,理想情况下,每个组中的类型列表。

您会收到一个编译错误,说明编译器无法识别类或名称不明确。您的意思是在您正在测试的特定程序集中?您可以很容易地编写一个单元测试来完成反射测试。@HimBromBeere:只有在使用含糊不清的情况下才可以。创建一个在两个不同名称空间中包含相同类名但没有任何编译时错误的项目是完全可行的。@HimBromBeere:但这不是OP所要求的。(仅仅让
对两个名称空间使用
指令是不够的,您必须尝试使用该类型。)如果您移动它们,请使用重构工具(VS,Resharper,…)这些将修复/提醒大多数问题。您会收到一个编译错误,说明编译器无法识别类或名称不明确。您是指在您正在测试的特定程序集中吗?您可以很容易地编写一个单元测试来完成反射测试。@HimBromBeere:只有在使用含糊不清的情况下才可以。创建一个在两个不同名称空间中包含相同类名但没有任何编译时错误的项目是完全可行的。@HimBromBeere:但这不是OP所要求的。(仅仅让
对两个名称空间使用
指令是不够的,您必须尝试使用该类型。)如果您移动它们,请使用重构工具(VS,Resharper,…)来修复/提醒大多数问题。