我有一个 WCF 服务,其中包含一个用于供应商凭据的自定义消息头。我创建了一个名为“AuthHeader”的类,它继承自 SoapHeader,并添加了用户名和密码的属性。
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");
虽然此代码找到了标头,但它没有正确反序列化值,而是结果对象上的用户名和密码为空。知道为什么不设置这些属性值吗?