何かを返す可能性がある場合、私はストリーミングを使用してWCFを通してデータを送信すると知りたいですか?私はnetTcpBindingを使用して、クライアントとサーバーは同じローカルネットワークにあります。ここでWCFのMessageContractを使用して値を返す方法は?
が私のコードです:
[ServiceContract()]
public interface IFileTransferService
{
[OperationContract(IsOneWay = true)]
//[FaultContract(typeof(MyFaultException))] // I can't do that
void Upload(FileTransferRequest request);
}
[MessageContract()]
public class FileTransferRequest
{
[MessageHeader(MustUnderstand = true)]
public string FileName;
[MessageBodyMember(Order = 1)]
public System.IO.Stream Data;
}
[DataContract]
public class MyFaultException
{
private string _reason;
[DataMember]
public string Reason
{
get { return _reason; }
set { _reason = value; }
}
}
ので、メッセージ契約を使用した場合、トランザクションは一つの方法でなければならない、私は任意の値を返すことができない、私は例外をスローすることはできません。どのようにクライアントに、その操作が成功したかどうかを知らせますか?そして、彼にエラーメッセージを送りなさい?
'OperationContract'を一方向として飾っているので、それは一方的でなければなりません。あなたの 'MessageContract'とは関係ありません。 – GalacticCowboy