이전에는 가져온 WSDL 웹 참조를 사용하는 C# 프로젝트에서 사용자 지정 SOAP 헤더를 만들어야했습니다. 나는 그것을 할 수있는 방법을 찾았지만 나는 결코 그것에 만족하지 못했고 더 좋은 방법이 있는지 궁금해했습니다.C#에서 SOAP 헤더를 사용자 지정하는 더 좋은 방법이 있습니까?
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://model.test.net")]
[System.Xml.Serialization.XmlRootAttribute("securitytoken", Namespace = "http://model.test.net", IsNullable = false)]
public class SpecialHeader : SoapHeader
{
[System.Xml.Serialization.XmlTextAttribute()]
public string aheadervalue;
}
내가 다음 WSDL에서 생성 된 코드를 수정하고 새로운 헤더의 인스턴스에 referen에게 가전을 추가했고, 각하기 전에 다음과 같은 : 내가 한 일은의 SOAPHeader에서 파생되는 헤더를 생성했다 나는 사용자 정의 헤더를 포함하고 싶었다 해당 웹 전화 :
"인스턴스 이름이"사용자 정의 헤더의 예 변수 이름이 생성 된 클래스에[System.Web.Services.Protocols.SoapHeaderAttribute("instancename", Direction=System.Web.Services.Protocols.SoapHeaderDirection.InOut)]
.
WSDL의 모든 변경 사항이 클래스를 재생성하기 때문에 다시 완료해야한다는 점을 제외하고는 정상적으로 작동합니다. 다른 언어에서는 생성 된 코드 외부에 헤더를 추가 할 수 있으므로 C#에서 수행되는 방법이 누락되었습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
@khebbie : 저는 WCF를 처음 사용하고 맞춤 헤더도 설정하려고합니다. 메시지 계약은 갈 길처럼 들립니다. 이 자료를 읽을 수있는 훌륭한 자료를 알고 있습니까? – Adam