2016-06-22 1 views
1

문자열 또는 XmlDocument를 반환하므로 Generic 형식의 WebMethod를 작성해야합니다. 내 코드가있다.일반 형식 웹 서비스의 WebMethod

[WebMethod] 
public T test<T>() 
{ 

    var type = Context.Request.QueryString["type"]; 

    if (type == "json") 
    { 
     string result = ""; 
     return result; 
    } 
    else 
    { 
     XmlDocument result = new XmlDocument(); 
     return result; 
    } 

} 

오류는 다음과 같습니다

여기 실수를 무엇 T.

에 T 또는을 XmlDocument로 문자열을 변환 할 수 없습니다

?

+0

이 메서드를 호출 할 때 컴파일러에서 제공 할 형식을 컴파일러에서 미리 알 수 없습니다. 반환하고 싶다면 변수'T result'가 필요합니다. –

+0

특정 유형 대신 객체를 반환 할 수 있습니다. – H77

+0

무엇을하려고합니까? 직렬화는 프레임 워크에 의해 구성되고 컨텐트 유형과 같은 잘 알려진 * 헤더를 기반으로 수행됩니다. 반면에 웹 메소드는 잘 알려진 정의 된 * 연산을 정의합니다. 일반적인 연산은 아닙니다. 이 경우, 그들은 필요가 없습니다. * 요청 *이 정상적으로 처리되면 동일한 메소드가 Json이나 SOAP을 반환 할 수 있습니다. –

답변

1

웹 서비스에서 일반 메서드를 사용할 수 없습니다.

+0

이 문제에 대한 제안 사항이 있습니까? querystring에서 유형을 가져오고이 유형을 반환하겠습니까? –

+1

@ AdemBüyük 문제는 디자인 그 자체입니다. "일반적인"웹 서비스는 없습니다. 그들은 모두 WSDL에서 노출 된 계약 스키마를 가지고있다. 유형을 모르는 경우에는이를 수행 할 수 없습니다. BTW WCF는 이미 요청에 따라 SOAP 또는 JSON을 반환하는 것을 지원합니다. –