我如何在BeforeDeserialize中读取SoapHeader,我尝试了一下,但它不起作用。任何解决方案或简单的示例。谢谢。
public class TicketIdentity
{
private string ticket;
public string Ticket
{
get { return ticket; }
}
public TicketIdentity(string _ticket)
{
this.ticket = _ticket;
}
}
public class TicketHeader : SoapHeader
{
public string Ticket;
public TicketHeader(string ticket)
{
Ticket = ticket;
}
public TicketHeader()
{ }
}
...
string Key;
public override void ProcessMessage(SoapMessage message)
{
switch (message.Stage)
{
case SoapMessageStage.BeforeSerialize:
break;
case SoapMessageStage.AfterSerialize:
break;
case SoapMessageStage.BeforeDeserialize:
{
foreach (SoapHeader header in message.Headers)
{
if (header is TicketHeader)
{
TicketHeader tempHeader = (TicketHeader)header;
Key = tempHeader.Ticket;
}
}
}
break;
case SoapMessageStage.AfterDeserialize:
break;
default:
throw new ArgumentException("Chyba pri serializacii SOAP msg.");
}
}发布于 2009-09-15 07:45:41
在反序列化之前,标头也是序列化的,因为它们的形式是。因此,您不能将消息头与业务对象进行比较,因为需要对消息进行反序列化。
https://stackoverflow.com/questions/1425649
复制相似问题