2016-06-22 13 views
1

文字列またはXmlDocumentを返すので、Generic型のWebメソッドを記述する必要があります。私のコードがあります。ジェネリック型Webサービスの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

あなたは何をしようとしていますか?シリアライゼーションは、コンフィグレーションと 'content-type'のようなよく知られた*ヘッダに基づいてフレームワークによって実行されます。一方、Webメソッドは、よく知られた定義済みの*演算を定義します。一般的なものではありません。この場合、彼らはする必要はありません。 * request *が適切に行われた場合、同じメソッドがJsonまたはSOAPを返すことができます –

答えて

1

Webサービスでジェネリックメソッドを使用することはできません。

+0

この問題の提案はありますか?私はクエスチングから型を取って、この型を返そうと思っていますか? –

+1

@AdemBüyük問題はデザインそのものです。 "ジェネリック"ウェブサービスのようなものはありません。それらはすべてWSDLで公開される契約スキーマを持っています。あなたがそのタイプを知らないなら、あなたはそれをすることはできません。 BTW WCFは既にリクエストに基づいてSOAPまたはJSONを返すことをサポートしています。 –

関連する問題