저는 C#으로 WCF를 만들고 동시에 클라이언트에서 사용하려고합니다. 어떤 이유로 int를 반환하는 메서드를 가져 오는 데 문제가 있습니다. 나는 그것을 구현 한WCF가 int를 반환하지 않습니다.
다음[ServiceContract]
public interface IMData
{
[OperationContract]
int ReturnAnInt();
[OperationContract]
String HelloWorld();
}
은 다음과 같습니다 : 여기 내 계약이다
public class MData : IMData
{
public String HelloWorld()
{
return "Hello World";
}
public int ReturnAnInt()
{
return 5;
}
}
나는 비주얼 스튜디오를 사용하고, 클라이언트를 위해, 나는 웹 참조로이 WCF를 수입했다. 이제 MData의 인스턴스를 선언하고 HelloWorld를 호출하려고 할 때 아무런 문제가 없지만 ReturnAnInt를 호출 할 때 컴파일 오류가 발생합니다.
MData m = new MData();
String helloWorld = m.HelloWorld();
int result = m.ReturnAnInt();
내가 ReturnAnInt으로 얻을 오류 : 는 "어떤 과부하 방법 'ReturnAnInt'에 대한지지 않습니다 0 인수"그럼 나 마우스를 통해 기대 비주얼 어떤 스튜디오보고,이 방법은 보이는 것을 말한다합니다 같은 :
void MData.ReturnAnInt(out int ReturnAnIntResult, out bool ReturnAnIntResultSpecified)
지금은 시간이를 통해 벽에 내 머리를 두드리는 된 구글에서 아무것도 찾을 수 있고, 내 동료뿐만 아니라 당황하고있다. 왜 정의에없는 두 개의 매개 변수를 추가하고 반환 유형을 변경 했습니까? 어떤 도움이라도 대단히 감사하겠습니다. 도움이 될만한 정보를 빠뜨리면 사과드립니다.
는 WCF는 정말'out' 매개 변수를 지원합니까? – abatishchev
네,하지만 그게 무슨 질문에 관한 건 아니에요. 질문에 설명 된 문제는 WCF C# 코드가'out' 매개 변수 또는 선택적'int's를 지정하지 않지만 웹 참조 코드 생성기가이를 생성하는 방식입니다. 이 작동합니다. 그러나,'int ReturnAnInt (out int otherInt);와 같은 WCF 서비스를 정의 할 수 있으며, 이는 작동하고, Service Reference와 Web Reference로 접근 할 수 있습니다. 생성 된 WSDL은 단순히 여러 요소가 포함 된 응답 객체이므로 다른 클라이언트 언어에서도 사용할 수있는 무언가를 생성해야합니다. –
답변 해 주셔서 감사합니다. 매우 도움이되었습니다. 서비스 참조로 가져 와서 문제가 해결되었습니다. :) –