DelegatingChannel (MessageHandler) を使用して受信メッセージを復号化し、送信メッセージを暗号化しようとしています。コードは次のようになりますが、いくつかのプレースホルダーを使用すると、達成する方法がわかりませんでした。
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
var inEncryptedMessage = request.Content.ReadAsOrDefault<EncryptedMessage>();
Message inMessage = inEncryptedMessage.Decrypt();
var newContent = new StringContent(inMessage.Data, Encoding.UTF8, "text/json");
newContent.Headers.ContentType = request.Content.Headers.ContentType;
request.Content = newContent;
return base.SendAsync(request, cancellationToken).ContinueWith(
task =>
{
HttpResponseMessage response = task.Result;
// need to serialize the data in response.Content as json
var outMessage = new Message {
Data = ... // but don't know how
};
var outEncryptedMessage = outMessage.Encrypt();
response.Content = new ObjectContent(outEncryptedMessage);
return response;
});
}
public class Message
{
public string Data { get; set; }
}
public class EncryptedMessage
{
public byte[] Key { get; set; }
public byte[] Message { get; set; }
}
リクエストでJSON文字列を操作に渡し、そこでJSONをオブジェクトに逆シリアル化したいです。しかし失敗しました...しかし、オブジェクトは作成されましたが、すべてのプロパティがnullです。
そのため、応答の側面について考えるのをやめました。しかし、response.Content からのオブジェクトの読み取りにはまだ問題があります。
答えがあれば何かアドバイスをお願いします。
どうもありがとう、M