Microsoft MVP성태의 닷넷 이야기
WCF Service Reference [링크 복사], [링크+제목 복사],
조회: 19915
글쓴 사람
임동찬 (dngchn.im at samsung.com)
홈페이지
첨부 파일
 

안녕하세요.
오랫만에 또 질문 있어 찾아왔습니다.
(늦었지만 새해 복 많이 받으세요.)

WCF 클라이언트를 만드는데요.
Service Reference에 서비스 참조를 하여
자동으로 프록시 코드를 생성해서 사용하려고 합니다.

프록시에 정의된 서비스의 클라이언트 생성자에 대해서 인데요.
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class CalculatorServiceClient : System.ServiceModel.ClientBase<Microsoft.Samples.Discovery.ServiceReference1.ICalculatorService>, Microsoft.Samples.Discovery.ServiceReference1.ICalculatorService {

        public CalculatorServiceClient(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint)
            : base(serviceEndpoint)
        {
        }
프록시에 위와 같이 생성자가 정의되고,
CalculatorServiceClient client = new CalculatorServiceClient(serviceEndpoint);
위와 같이 프록시 클라이언트를 생성해서 사용하고자 합니다.

그런데 프록시 코드를 생성해보면,
public CalculatorServiceClient() {
        }
        
        public CalculatorServiceClient(string endpointConfigurationName) :
                base(endpointConfigurationName) {
        }
        
        public CalculatorServiceClient(string endpointConfigurationName, string remoteAddress) :
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public CalculatorServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public CalculatorServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
                base(binding, remoteAddress) {
        }

위와 같이 생성자의 파라미터가 endpoint가 아닌 string 타입의 endpointconfigurationname으로 만들어 지네요.

물론 자동 생성된 이후에 프록시 생성자를 System.ServiceModel.Description.ServiceEndpoint 타입으로 수동 편집 하면 되겠지만,
서비스 업데이트 할때마다 매번 해줘야 하게 되니, 뭔가 방법이 있을 듯 한데, 어떻게 하면 될까요?









[최초 등록일: ]
[최종 수정일: 2/11/2011]


비밀번호

댓글 작성자
 



2011-02-12 01시05분
그래서 ^^ partial 예약어가 빛을 발합니다. 위의 프록시 클래스가 생성되는 프로젝트에 임의의 cs 파일을 추가하고, 거기에

partial class CalculatorServiceClient
{
  public CalculatorServiceClient(System.ServiceModel.Description.ServiceEndpoint ...);
}
라고 코드를 넣어주시면 됩니다. 그럼, 프록시 업데이트는 그 나름대로 계속 진행될 것이고 위에 추가된 파일은 변경되지 않고 남게 되므로 빌드시 에 2개의 소스 코드가 합쳐져서 결과물이 나오게 됩니다. ^^
정성태

... 61  62  63  64  65  66  67  68  69  [70]  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
831채승수10/13/200918186스마트 클라이언트 GAC 등록 문제 여쭤봅니다... [2]
829박찬용10/9/200930726WebBrowser 컨트롤 사용시 새창을 띄울시 세션/쿠키 공유가 왜 안될까요?? [1]파일 다운로드1
827송창훈9/24/200915719[질문]CAS 설정
828정성태9/28/200918852    답변글 [답변]: [질문]CAS 설정 [1]
825김재영9/18/200916801프레임워크별 비트 지원에 대해서 문의를 드립니다. [2]
821채승수8/27/200916177클릭원스를 비스타에서 실행시 [1]
822채승수8/28/200921249    답변글 [답변]: 클릭원스를 비스타에서 실행시 [2]
818개발돌이8/14/200919045ActiveX개발한 dll을 임베디드 할때 UI에 대한 질문 [1]파일 다운로드1
817채승수8/13/200918474클릭원스 관련 질문드립니다.~ [1]
816박진오7/29/200917786다국어 사이트의 컨텐츠 저장 방식에 대해.. [2]
814서광원7/16/200926632IWebBrowser2를 이용한 프로그램에서 javascript의 alert 창 무시하는 법? [1]
813윤상균7/16/200917498비관리코드와의 상호운용에서 마샬링 질문 [1]
812김현우7/13/200918116usercontrol은 mdi container가 될수 없는데 이를 구현할 방법은 무엇일런지요? [2]
811조민수7/3/200917494MSDN Magazine 한글화 않되나요? [1]
810세경6/29/200923051SmartClient Vista 64bit IE7 [4]
809윤석준6/24/200922776IE -nomerge 옵션으로 새창을 열려고 합니다. [1]
808한승훈6/4/200922040dll import하기 위해 struct 구성시에 struct가 struct를 가지고 있고 포함된 struct가 ByValArray형태일때 해결 [1]
806곰티5/26/200920060defcon pro 설치 원천 봉쇄 방법 문의 [3]
802채승수5/8/200919119신뢰사이트 등록/적용에 관해 질문드립니다. [1]
801채승수4/15/200919954IE8 새세션을 코드로 구현할수 없을까요 [1]
800신동열4/7/200920151IE8에서 스마트 클라이언트 로딩 문제 [2]
7993/27/200923116이벤트 로그 오류 [1]
798천해3/26/200920246IE8.0 에 관해 질문 드립니다. [2]
797궁금..3/23/200920176IE 8 관련 질문.. [2]
796정성태3/20/200918698스마트클라이언트와 ActiveX에 관한 질문 [1]
795김기용3/19/200918083[질문] DHTML 다이얼로그 관련 [2]
... 61  62  63  64  65  66  67  68  69  [70]  71  72  73  74  75  ...