2011-05-02 4 views
0
I have two different Interface service that I'm using 
    1. IService1 
    2. IService2 

I define two files 
    1. IService1.cs => that hold the Interface of IService1 
    2. IService2.cs => that hold the Interface of IService2 

I also define two different .cvs 
    1. IService1.cvs=> that hold the Interface of IService1 
    2. IService2.cvs=> that hold the Interface of IService2 

이 파일을 구조체로 만들거나 모든 계약 인터페이스를 하나의 파일에 포함하고 하나의 .cvs 파일을 갖는 것이 좋습니다.다른 .svc 파일에 다른 인터페이스를 정의 하시겠습니까?

답변

1

.svc 파일입니다.

두 개의 .svc 파일이있는 경우 각각 단일 종점, 자체 WSDL 및 자체 동작 (예 : 보안, 조절 등)이있는 두 가지 다른 서비스 (두 클래스)를 노출합니다.

하나의 .svc 파일이있는 경우 서비스는 두 인터페이스 (하나의 클래스)를 모두 구현해야하며 단일 서비스 동작이있는 동일한 WSDL에 설명 된 두 개의 다른 끝점을 갖습니다.

.svc 파일을 수동으로 수정하는 부분은 실제 이점이 없으며 .svc 파일이 아닌 서비스 클래스별로 구성되기 때문에 동일한 클래스를 가리키는 부분은 건너 뜁니다.

정말 어떤 요구 사항을 가지고 있느냐에 따라 다릅니다.

+0

.svc 파일 - 감사합니다. – Yanshof

+0

내가 ISBeanBase에 IService1을 노출하고 NamedPipeBinding에만 IService2를 노출하고 싶습니다. 동일한 서비스에서이 둘을 정의하거나 설정 파일에서 두 개의 서비스를 정의해야합니까? – Yanshof

+1

WCF의 NamedPipes는 다른 시스템에서 액세스 할 수 없으며 엔드 포인트가 원격 클라이언트에 노출 된 WSDL에 없어야하기 때문에 각 .svc에 각각을 노출 할 수 있습니다. –

1

에 따라 다릅니다.

IService1IService2의 구현은 동일한 클래스에있는 경우 :

public class MyService : IService1, IService2 
{ 
    ... 
} 

그런 한 SVC는 파일을하고 두 끝점이 필요합니다.

가 별도의 클래스에있는 경우 :

public class MyService1 : IService1 
{ 
    ... 
} 

public class MyService2 : IService2 
{ 
    ... 
} 

그런 이 SVC는 파일.

관련 문제