팀 A가 WebServiceA를 만듭니다. Person 유형을 사용합니다. 사람이 WebServiceA의 호출로 등록되면 다른 시스템에도 (등록 된 사람을 통과 한 팀 B가 만든 WebServiceB에 대한 호출로) 통지해야합니다.웹 서비스간에 유형을 공유하는 방법
그런 다음 시스템 B에서 사람을 편집하면 수정 된 사람을 전달하는 WebServiceA에 대한 호출을 통해 시스템 A로 수정 사항을 마이그레이션해야합니다.
두 웹 서비스가 같은 유형을 사용하도록 만드는 방법은 무엇입니까? xml을 문자열로 보낸 다음 각 WebService의 객체에 serialize/deserialize하여 xml에 대해 작업 할 필요가 없도록 할 수 있지만 더 쉬운 방법은 궁금합니다.
나는 이것을하고 싶은 : 대신
WebServiceA
Webmethod - RegisterPerson(Person person)
calls WebServiceB.PersonRegistered(person.SerializeToXml())
WebMethod - PersonModified(string person) - deserialize to WebServiceA.Person
WebSericeB
WebMethod - PersonRegistered(string person) - deserialize to WebServiceB.Person
WebMethod - ModifyPerson(Person person)
calls WebServiceA.PersonModified(person.SerializeToXml())
의
WebServiceA
Webmethod - RegisterPerson(Person person)
calls WebServiceB.PersonRegistered(person)
WebMethod - PersonModified(Person person)
WebSericeB
WebMethod - PersonRegistered(Person person)
WebMethod - ModifyPerson(Person person)
calls WebServiceA.PersonModified(person)
을 우리는 A 팀에서 ASP.NET WebService에를 사용하고 B 팀이 자바를 사용하고 있습니다. 두 팀 모두 .NET을 사용 중이면 아무 것도 변경되지 않습니까?
그리고 우리가 wcf 서비스가 아닌 웹 서비스 사용? .NET으로 작성된 두 웹 서비스간에 객체를 공유 할 수있는 방법이 있습니까? 나는 당신이 당신의 대답에 약간의 실수를했다고 생각합니다. 첫 번째 예제에서는 두 번째가 아닌 객체를 전달합니다. 두 번째로 나는 현을 건네 준다. –
@Peri "웹 참조"를 사용하여 프록시 클래스를 만들 수 있습니다. http://msdn.microsoft.com/en-us/library/d9w023sx(v=vs.90).aspx를 참조하십시오. WCF가 웹 서비스에 권장되는 방법이라고 생각합니다. (필자는 예제에 대한 참조를 수정했습니다.) – Ulises
예 프록시 클래스를 만들 수 있다는 것을 알고 있습니다.하지만 웹 참조를 추가하면 WebServiceB가이 클래스 라이브러리의 WebServiceA 유형과 동일한 클래스 라이브러리를 참조하더라도 프록시와 함께 재생성되고 다른 네임 스페이스에 있습니다. 따라서 WebServiceB에 WebServiceA에 PersonRegistered (ClassLibrary.Person person) 메소드가 있으면 PersonRegistered (WebService2.Person person)로 표시됩니다. –