SOAP seems to have been completely redone in VS2008.
To do the same in VS2008 you need to create a class that implements SoapExtension:
public class classname : SoapExtension {
public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute) {
throw new NotImplementedException();
}
public override object GetInitializer(Type serviceType) {
return null;
}
public override void Initialize(object initializer) {}
public override void ProcessMessage(SoapMessage message) {
switch (message.Stage) {
case SoapMessageStage.BeforeSerialize:
var header = GetHeader(); // Returns a class implementing SoapHeader
message.Headers.Add(header);
break;
case SoapMessageStage.AfterSerialize:
break;
case SoapMessageStage.BeforeDeserialize:
break;
case SoapMessageStage.AfterDeserialize:
break;
}
}
}
And register that class in your config file:
....
<webServices>
<soapExtensionTypes>
<add type="namespace.classname, namespace" priority="1" group="Low"/>
</soapExtensionTypes>
</webServices>
</system.web>