비즈니스 규칙으로 특정 네임 스페이스의 사용을 다른 네임 스페이스의 내부에서 허용하지 않습니다.단위 테스트 또는 코드 분석을 위해 C#에서 네임 스페이스가 클래스에서 사용되는지 여부를 확인할 수 있습니까?
예 : 우리가 더 쉽게 오히려 코드 리뷰에 의존하기보다는,이 비즈니스 규칙을 적용 할 수 있도록
using X.A; //Allowed
using X.B; //Not allowed
namespace X.C
{
const string abc = X.A.MyClass.ABC; //Allowed
const string def = X.B.MyClass.DEF; //Not allowed, because we are using X.B
public void MyMethod()
{
string ghi = X.A.MyClass.GHI; //Allowed
string jkl = X.B.MyClass.JKL; //Not allowed because we are using X.B
string mno = "X.B.MyClass.MNO"; //Allowed, because we are not accessing X.B
}
}
은, 코드 분석, 또는 두 가지 모두를 통해, 단위 테스트와이를 제어 할 수있는 이런 종류의 일을 쉽게 놓칠 수 있습니까? 가능하다고 가정하면 어떻게 할 것입니까?
이러한 규칙의 목적은 무엇입니까? 이것은 실제로 유용하지 않습니다. 대신 어셈블리 참조를 제거하지 않으시겠습니까? – poke
단위 테스트는 _implementation_이 아닌 _results_를 확인하기위한 것입니다. 코드 분석을 사용하여이 사용을 탐지 할 수 있습니다. _how_ 지금 질문하고 싶다면 질문에 추가하고 사용할 코드 분석 도구를 지정하십시오. –
두 개 이상의 어셈블리가 동일한 네임 스페이스 계층을 공유 할 수 있습니다. 하나의 dll에는'X.A'를 넣고 다른 하나에는'X.B'를 넣을 수 있습니다. 하지만 실제로 네임 스페이스로 액세스를 제어하는 것은 어색하며 도구를 계속 사용하여 계속 작동하게 만듭니다. –