웹 서비스를 통해 데이터를 보내고 받기 위해 제 3의 WSDL
(서비스 참조를 통해)을 내 콘솔 응용 프로그램 프로젝트로 가져 왔습니다. 이 기능을 적절하게 사용하려면 웹 서비스에 연결된 Reference.cs
파일에 코드를 추가해야했습니다. 이 작업이 진행되는 동안 WSDL을 업데이트하고 해당 서비스 참조를 다시 가져 오거나 생성하면 해당 해결 코드가 사라집니다.생성 된 부분 클래스 재정의
이 문제를 해결하기 위해 필요한 코드 변경 내용을 프로젝트 내에 저장된 외부 텍스트 파일에 저장했습니다.
서비스 레퍼런스가 아닌 별도의 클래스에 이러한 변경 사항을 기록 할 수있는 방법을 알고 있지만 여전히 서비스 레퍼런스에서 참조 할 수 있다면 궁금합니다. "올바른" 웹 서비스에서 보내고 받기 위해 필요한 코드.
나는 생성 된 코드에서 자신의 .cs
파일로 분리하고 서비스 참조에서 사용하는 namespace
을 참조한 후 두 클래스 (생성 된 코드에는 포함되지 않음)를 참조 할 수 있습니다. 내가하고 싶은 무엇
, 가능하면 않습니다 :
전체 목표 :
서비스 참조, 그 방법으로 타사 WSDL을 가져 오기에 의해 생성 된 코드에 사용자 정의 코드 추가 WSDL은 제 3 자에 의해 업데이트되며, 다른 개발자는 서비스 참조의
Reference.cs
파일을 반드시 기억하고 특정 코드를 대체/추가해야한다는 것을 기억하지 않아도됩니다. (아래의 발췌문 # 1 참조) 사용자 정의 버전으로 생성 된 partial class
의 기존 속성 및 관련 분야를 교체
- :
내가 할 수 있어야합니다,이 목표를 달성하기 위해.
- 생성 된 기존
partial class
을 속성 정의가 다르며 속성/필드 정의가 약간 다른 클래스의 사용자 정의 버전으로 바꿉니다.
는
니펫 # 1
다음 바꾸기 :
: 속성이 버전의private byte[] bulkExchangeFileField;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:us:gov:treasury:irs:common", DataType = "base64Binary", Order = 0)]
public byte[] BulkExchangeFile
{
get { return this.bulkExchangeFileField; }
set
{
this.bulkExchangeFileField = value;
this.RaisePropertyChanged("BulkExchangeFile");
}
}
을/한 번 일 필드는 내가 생성 된 코드를 변경
private BulkExchangeFileType bulkExchangeFileField;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:us:gov:treasury:irs:common", Order = 0)]
public BulkExchangeFileType BulkExchangeFile
{
get { return this.bulkExchangeFileField; }
set
{
this.bulkExchangeFileField = value;
this.RaisePropertyChanged("BulkExchangeFile");
}
}
답장을 보내 주셔서 감사합니다. 나는 당신이 속성의 오버로딩에 대해 무엇을 말하고 있는지 완전히 이해하고 있는지 확신 할 수 없다. 샘플/샘플을 제공하기 위해 응답을 편집 할 수 있습니까? 하나의 프로퍼티를 다른 타입의 프로퍼티로 대체하고 싶습니다 : 하나는 'BulkExchangeFileType'으로 정의 된'byte [] '로 정의 된 프로퍼티입니다. 나는 내가 찾고있는 것을 더 구체적으로 내 포스트를 업데이트했다. – Russ