2012-02-10 5 views
4

나는 어떤 규칙을 따라야하는지 혼란 스럽습니다. 현재 응용 프로그램 이름이 "Common"회사 라이브러리의 이름이기도 한 "Common"이기 때문에 문제가 발생했음을 발견했습니다.네임 스페이스와 이름이 같고 WCF와 혼동되었습니다.

  • WCF 서비스 : 나는 WCF 서비스가 실행 다음과 같은 네임 스페이스에 두 클래스 라이브러리를 참조해야 Common.Services
  • Appliation 도메인 층 : Common.Domain
  • 공용 라이브러리 : CompanyName.Common

이 이름을 사용하면이 이름을 사용하여 잘 컴파일되지만 WCF 테스트 클라이언트에 Company.CommonDomain이 포함되어 있지 않습니다. 어셈블리 참조가 누락 되었습니까?

Company.Common 실제로 중첩 된 Domain 네임 스페이스가 없습니다. 별도의 Common.Domain가 있지만 중첩되어서는 안됩니다 ...?

이미 CompanyName.Common 네임 스페이스를 참조하는 다른 클라이언트 (예 : 웹 응용 프로그램)에서 서비스를 사용하는 경우 네임 스페이스가 혼란 스럽기 때문에 유형을 다시 사용하지 않습니다.

Visual Studio를 사용하면 클라이언트에서 두 개의 참조 된 어셈블리를 조사 할 수 있으며 올바른 구조를 보여줍니다. 내가 말할 수있는 바로는 WCF이 네임 스페이스를 좋아하지 않는 것 같습니다.

나는이 누구도 만나지 못했을 것이라고 생각하지 않습니까?

+1

모든 유형 이름을 자세히 설명합니까? 어쩌면 그것들에'global ::'접두어를 붙이십시오. –

+0

아마도 WCFProxyGenerator에서 무언가를 무효화 할 수 있습니까? – Evgeny

답변

1

WCF는 서로 다른 웹 서비스 끝점으로 표시되는 경우 충돌하는 네임 스페이스와 클래스까지 여러 가지 문제가 있습니다. 예를 들어 빈 서비스 Reference.cs 파일이 생성됩니다. 어쨌든 일반적으로 좋은 추천은 네임 스페이스를 의미있는 이름으로 바꾸거나 "공통"이외의 더 의미있는 네임 스페이스로 분리하는 것입니다.

관련 문제