문제

REST WCF 서비스에서 일반적인 ICollection을 반환하려고합니다. 다음이 가능해야합니까?

[ServiceContract]
public class WebConfigurationManager {

    [WebGet]
    [OperationContract]
    public ICollection<string> GetStrings() {
        return new string[] { "A", "B", "C" };
    }

}

웹 브라우저 에서이 작업을 실행하려고하면 오류가 발생합니다. 내 WCF 추적을 살펴보면 다음과 같습니다.

'System.String []'(작동 'getStrings', 계약 'WebConfigurationManager')의 매개 변수를 직렬화 할 수 없습니다. 메소드에서 정확한 유형 'System.Collections.generic.icollection`1 [System.String]' ' 서명이며 알려진 유형 컬렉션에 없습니다. 매개 변수를 직렬화하려면 ServiceKnownTyPeatTribute를 사용하여 작동에 대한 알려진 유형 컬렉션에 유형을 추가하십시오.

도움이 되었습니까?

해결책

이것은 작동해야합니다 :

[ServiceKnownType(typeof(string[]))]
[ServiceContract]
public class WebConfigurationManager {
    [WebGet]
    [OperationContract]
    public ICollection<string> GetStrings() {
        return new string[] { "A", "B", "C" };
    }
}

다른 팁

앤드류는 나를 올바른 방향으로 지적했다. 답은 추가하는 것입니다

[ServiceKnownType(typeof(string[]))]

servicecontract] 속성 위.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top