ベンダー資格情報のカスタム メッセージ ヘッダーを含む WCF サービスがあります。SoapHeader から継承する「AuthHeader」というクラスを作成し、ユーザー名とパスワードのプロパティを追加しました。
public class AuthHeader : SoapHeader
{
public string Username;
public string Password;
}
クライアントで次のコードを使用してヘッダーを追加しています。
OperationContext.Current.OutgoingMessageHeaders.Add(
MessageHeader.CreateHeader("Identity",
"http://www.my-website.com",
new AuthHeader
{
Username = "UserNameValue",
Password = "PasswordValue"
}
));
次に、以下を使用してサービスのヘッダーを取得しようとします。
var result = OperationContext.Current.IncomingMessageHeaders.GetHeader<AuthHeader>("Identity", "http://www.my-website.com");
このコードはヘッダーを見つけますが、値を正しく逆シリアル化せず、結果オブジェクトのユーザー名とパスワードが null になります。これらのプロパティ値を設定しない理由は何ですか?