2010-12-30 9 views
0

ストリーミングとシリアライゼーションには少し緑色ですが、サーバー上のUploadメソッドでクライアントにシリアライズ可能なオブジェクトを返すようにしたいのですが(現在は無効です)。FileStreamからSerializableオブジェクトを返しますか?

私は[Serializableを]で飾るパブリッククラスServiceResultを持っている、とIFileTransferService

[ServiceContract()] 
public interface IFileTransferService 
{ 
    [OperationContract(IsOneWay = false)] 
    string Upload(FileTransferRequest request); 
} 

を実装パブリッククラスFileTransferServiceは、実装はそのことをし、その後、最後に私が作成し、オブジェクトをシリアル化そして、私はこのクラス

を使用してこのサービスを呼び出すクライアント側で文字列に

return ServiceResultSerializer.SerializeAnObject(result); 

を返すようにしてみてください

私は基本的にこのブログで見つかったこのプロジェクト取っている:私は今のエラーを取得http://weblogs.asp.net/cibrax/archive/2007/08/29/sending-attachments-with-wcf.aspx

をそして、それはクライアントの呼び出し側が

を使用することができます値を返すようにしよう、それは言う:

「アップロード」操作には、System.ServiceModel.Channels.Message型のパラメータまたは戻り値の型、または異なる型のMessageContractAttributeおよびその他のパラメータを持つ型が含まれているため、読み込みできませんでした。 System.ServiceModel.Channels.Messageを使用する場合、またはMessageContractAttributeで型を指定する場合、このメソッドは他のタイプのパラメータを使用してはなりません。

私はそれが何を意味するかわからない:私はサービスパラメータを変更しようとしていると思う。

申し訳ありませんが、私はあまりに一般的すぎる - 任意の助けをいただければ幸いです。

+0

あなたの投稿されたコードには何か不足があります。あなたが言及した 'ServiceResult'クラスはどこですか?また、 'FileTransferRequest'の定義は何ですか? – Jacob

答えて

1

あなたのFileTransferRequestクラスにはMessageContractAttributeが適用されているように私に聞こえます。

入力パラメータにMessageContractAttributeがあるため、応答タイプもMessageContractAttributeである必要があります。Stringではありません。単一の文字列型プロパティを持つFileTransferResponseクラスを作成して、それを戻り値の型として使用してみてください。

関連する問題