NsDepCop
NsDepCop copied to clipboard
Disallowing selected types of a namespace
Make it possible to disallow selected types of a namespace.
Example use case: to prevent developers using the Assert type of Xunit and use FluentAssertions instead.
I can think of two different ways to specify this in the config: the first aligns better with an allowlisting approach, while the second fits more with a denylisting approach.
Allowlist approach:
<NsDepCopConfig IsEnabled="true" ChildCanDependOnParentImplicitly="true">
<Allowed From="*" To="FluentAssertions">
<Allowed From="*" To="Xunit">
<DisallowedMembers>
<Type Name="Assert" />
</DisallowedMembers>
</Allowed>
</NsDepCopConfig>
Denylist approach:
<NsDepCopConfig IsEnabled="true" ChildCanDependOnParentImplicitly="true">
<Allowed From="*" To="*" />
<DisallowedMembers OfNamespace="Xunit">
<Type Name="Assert" />
</DisallowedMembers>
</NsDepCopConfig>
@realvizu In the above-mentioned code, the closing tag for DisallowedMembers is wrong!
<NsDepCopConfig IsEnabled="true" ChildCanDependOnParentImplicitly="true">
<Allowed From="*" To="*" />
<DisallowedMembers OfNamespace="Xunit">
<Type Name="Assert" />
</DisallowedMembers>
</NsDepCopConfig>
Corrected it, thanks!