2009-12-29 7 views
7

정의를 반환하는 객체. 서비스 클래스에서 사용자 지정 개체를 반환해야합니다. 방법은 다음과 같다 :WCF 서비스는 : 내 응용 프로그램에서 WCF 서비스를 사용하고

System.ServiceModel.CommunicationException: "An error occured while receiving the HTTP response to <service path>" 

내부 예외 :

System.Net.WebException: "The underlying connection was closed. An unexpected error occured on receive" 

내가 서비스로 전화를 걸 때마다
IService.cs: 
[OperationContract] 
object GetObject(); 

Service.cs 
public object GetObject() 
{ 
    object NewObject = "Test"; 
    return NewObject; 
} 

, 그것은 다음과 같은 메시지와 함께 예외가 발생합니다 WCF 서비스에서 객체 유형 또는 사용자 정의 객체를 반환하지 않습니까?

+0

어디에서 WCF 서비스를 호스팅합니까? 나는이 빈약 한 디자인에 동의하면서 –

답변

13

는 :

[DataContract] 
public class MyClass 
{ 
    [DataMember] 
    public string MyString {get; set;} 
} 

지금과 같이 서비스 인터페이스를 변경 :

[OperationContract]  
MyClass GetMyClass(); 

그리고 서비스를 :

public MyClass GetMyClass()  
{  
    return new MyClass{MyString = "Test"};  
} 
1

당신은 특정 유형이 아닌 "개체"를 반환해야합니다. "객체"는 어떤 유형이라도 될 수 있습니다. MS는 당신이, 내가 그들없이 성공하지 않은 더 이상 [DataContract] 또는 [DataMember를] 속성을 사용할 필요가 없습니다 말한다 동안

+0

, 나는 WCF가 객체 – Steve

+2

을 처리 할 수 ​​있어야한다고 생각 "개체는"와일드 카드입니다. 그것은 당신이 무엇이든을 돌려 보낼다는 것을 의미한다. 당신은 당신이'ServiceKnownTypeAttribute'를 사용하여 반환 될 수있는 것은 어떤 종류의 WCF 말할해야합니다. –

0

사용자 정의 개체는 정상입니다. 특성을 가진 사용자 지정 개체를 표시하고 진행 상황을 확인해보십시오. 추적을 켜고 svcutil을 사용하여 추적을 얻음으로써 명시 적으로 발생하는 것에 대한 자세한 정보를 얻을 수 있습니다.

당신은 DataContract 속성으로 표시되는 클래스의 인스턴스를 반환해야
관련 문제