2012-07-09 4 views
4

참조한 내 솔루션에 로컬 WCF 서비스가 있습니다. 그러나 내 컨트롤러 클래스는 Service 네임 스페이스를 선택할 수 없습니까? 전통적으로 svcUtil을 사용하여 래퍼 클래스를 작성했지만 내부 참조이므로 단순히 '서비스 참조'를 추가 할 수 있습니다. 그러면 네임 스페이스에 간단히 접근 할 수 있습니다 (예 : var service = new QServiceReference.MyClass();)WCF 서비스 참조 네임 스페이스를 찾을 수 없습니다.

내가 지금 여기에 사진을 표시 할 수 없습니다 해요

내 솔루션의 구조이다

Solution 
-> Services Folder 
    -> QService Folder 
     QService Project 
-> Web Folder 
    -> Zipporah.Queuing.Web (project) 
     -> Services References 
      -> QServiceReference 
     -> Controllers Folder 
      -> KioskProcessController 

다음과 같이 내 클래스 (KioskProcessController)입니다 :

그 구조가 명확하지 않은 경우 상기와 같은 (
using System.Web.Mvc; 

using Zipporah.Queuing.Web.QServiceReference; (ITS THIS NAMESPACE REFERENCE THAT DOES NOT WORK) 

namespace Zipporah.Queuing.Web.Controllers 
{ 
    public class KioskProcessController : ZipController 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ViewResult Queue() 
     { 
      return View(); 
     } 

     public ViewResult PreAppointment() 
     { 
      return View(); 
     } 
    } 
} 

죄송합니다 나는 그림을 게시 할 수 없다)

단서 또는 생각이 가장 높이 평가됩니까?

답변

18

WCF 클라이언트 용으로 생성 된 네임 스페이스가 using과 다를 수 있습니다. 당신의 Solution Explorer 창에서, 당신은 당신의 Service References 폴더를 선택하면, 당신은 Show All Files 버튼을 활성화 할 수 있습니다와의 스크린 샷 아래와 같이 다음 Reference.cs 파일로 이동 :

enter image description here

그런 Reference.cs 파일에서, 당신은 찾을 수 있습니다 실제 생성 된 네임 스페이스은 서비스 참조 추가 대화 상자로 using 문으로 다른 파일에서 사용할 수 있습니다.

+0

감사합니다. CSharpVJ. Reference.cs에서 자동 생성 된 코드가 비어있어 많은 것을 설명 할 것입니다 :) 다시 감사드립니다. –

+0

불행히도 Svcutil과 VS2010은 네임 스페이스를 다르게 처리합니다. –

+0

이 빈 참조에 따라 그 이후로 근본적인 문제가 발견되었습니다. 2 실제로. 첫째, 클래스에 올바른 데이터 계약이 설정되지 않았고 의존성 맵퍼가 누락되었습니다. 두 번째로 앱 구성의 엔드 포인트에 잘못된 값이 있습니다. 배운 교훈. –