의 네임 스페이스가있는 .NET 3.5 C# 프로젝트가 있습니다. 나는 다음과 같은 경고 얻을 내 프로젝트에 "Samplenamespace.Utils.Example"라는 어셈블리를 추가하는 경우참조 이름 대/소문자가 CLS와 일치하지 않습니다.
는 :
아니다식별자 'Samplenamespace'는 경우에만 다른를 CLS 규격
Samplenamespace
에 소문자 'n'이 있음에 유의하십시오.
현재 프로젝트에서 참조 어셈블리를 사용하고 있지 않습니다. 참조로 추가하기 만하면 경고가 표시됩니다.
컴파일러가 공용 클래스에서 어셈블리에 대한 참조를 노출하지 않는 이유에 대해 불평하는 이유는 무엇입니까?
해결 방법은 없나요?
감사합니다. Ralph, 내 프로젝트가 참조 된 어셈블리를 잠재적 인 VB 클라이언트에 노출시키지 않아서이 문제가 왜 중요한지 이해할 수 없습니다. 내가 효과적으로 기본 어셈블리에서 VB 클라이언트를 추상 해요? – user115909
VB에서는 대/소문자를 구분하지 않으므로 SampleNamespace.A와 Samplenamespace.A를 구별 할 수 없으므로 호출 할 형식을 결정할 수 없습니다. 이러한 모호성을 방지하기 위해 C# 컴파일러는이 문제를 플래그로 지정하여 모호성없이 모든 사람이 호출 할 수있는 형식과 멤버 만 만들 수 있습니다. – Gishu
제 생각에는, 맹목적인 체크 - 앤 - 플랙 (flag-check-and-flag)입니다. 실제로 타입을 사용하거나 노출하는 방법을 고려하지 않았습니다. – Gishu