2011-03-21 6 views
4

Visual Studio에서 여러 서비스 참조가 네임 스페이스를 공유하도록하려면 Reference.cs 파일을 직접 코딩 할 수있는 방법이 부족합니까?Visual Studio에서 여러 서비스 참조로 네임 스페이스 공유

동일한 솔루션의 일부인 여러 서비스를 사용하는 클라이언트 응용 프로그램을 개발 중입니다. Microsoft는 PSI (Project Service Interface) API 라인을 따라 MS-Project Server를 제공합니다. 같은 각 개별 서비스 참조에 대한 다른 네임 스페이스,이보다는이 온다와 함께

MyProject.Services.ProjectServiceClient 
MyProject.Services.ResourceServiceClient 
MyProject.Services.TimesheetServiceClient 

:

MyProject.ProjectService.ProjectServiceClient 
MyProject.ResourceService.ResourceServiceClient 
MyProject.TimesheetService.TimesheetServiceClient 

을 우리가 같이 단일 네임 스페이스에 그들 모두를 던질 수 있다면 좋을 것이다 공통 코드를 공유 할 수있는 능력. 예를 들어, 이러한 서비스 중 하나라도 동일한 데이터 계약을 노출 한 경우 지금 당장 클라이언트에서 사용할 수있는 코드를 작성하려면 공용 계약이 세 가지 다른 네임 스페이스에 있으므로 각 서비스 프록시에 대해 별도의 버전을 만들어야합니다. 내가 어디로 가는지 보아라.

가능합니까?

UPDATE

은의 공유 클래스 라이브러리이 옵션을 선택하지 않습니다 것을 의미합니다 (I 그렇지 사촌) 나는 서비스 코드에 액세스 할 수없는 것을 가정 해 봅시다. 이 경우 내 선택은 무엇입니까?

+0

어떤 버전의 Visual Studio가 있습니까? 서비스 참조 또는 웹 참조를 사용하고 있습니까? – CodingGorilla

+0

Visual Studio 2010을 사용하고 서비스 참조를 추가하고 있습니다. (PSI의 사용은 예제를위한 것일뿐입니다.) – SonOfPirate

답변

1

이러한 공통 클래스를 서비스와 클라이언트가 공유하는 클래스 라이브러리에 배치 할 수 있습니다. 그런 다음 Visual Studio는 각 서비스 참조에 대해 클래스를 생성하지 않지만 대신 공용 클래스 라이브러리를 사용합니다.

+1

예, 알았습니다. 나는 그것을 조금 더 청결하게 만들 수있는 방법이 있기를 바랄 뿐이다. – SonOfPirate

+0

이것은 서비스의 서버 측과 클라이언트 측을 모두 제어하는 ​​경우 훌륭한 기술이며 많은 이점이 있습니다. 이 기술의 가장 좋아하는 기능은 더 이상 불필요한 Service References dir 및 Reference.cs 파일 (egad)을 유지해야 할 필요가 없다는 것입니다. –

+0

@Chris : 여전히 Reference.cs 파일이 있지만 그 파일의 수가 적습니다. –

관련 문제