요청/응답 래퍼를 사용하는 상호 운용 가능한 WebService를 만드는 데 필요한 올바른 Attribute 태그는 무엇입니까?C# : 상호 운용 가능한 웹 서비스 -이 속성에 어떤 속성을 추가해야합니까?
나는 인터페이스와 이미 기능을 만들어 (그리고 나는 3 개 부분 (Client.dll, Shared.dll, SERVER.DLL)로 내 서비스를 분할 :
SERVER.DLL :
public sealed class CalcServer : ICalculator
{
public AddResponse Add(AddRequest request)
{
return new AddResponse(request.Value1 + request.Value2);
}
}
Shared.dll :
public interface ICalculator
{
AddResponse Add(AddRequest request);
}
public sealed class AddResponse
{
public int Value { get; private set; }
public AddResponse()
{
Init();
}
public AddResponse(int value)
{
Init(value);
}
private void Init(int value = 0)
{
Value = value;
}
}
public sealed class AddRequest
{
public int Value1 { get; private set; }
public int Value2 { get; private set; }
public AddResponse()
{
Init();
}
public AddResponse(int value1 = 0, int value2 = 0)
{
Init(value1, value2);
}
private void Init(int value1 = 0, int value2 = 0)
{
Value1 = value1;
Value2 = value2;
}
}
Client.dll :
public interface CalcChannel : ICalculator, IClientChannel
{
}
public sealed class CalcClient : ClientBase<ICalculator>, ICalculator
{
public CalcClient(String endpointConfigurationName) :
base(endpointConfigurationName)
{
}
pubic int DoAdd(int val1, int val2)
{
AddRequest request = new AddRequest(val1, val2);
AddResponse response = ((ICalculatr)this).Add(request);
return response.Value;
}
AddResponse ICalculator.Add(AddRequest request)
{
return Channel.Add(request);
}
}
내가 필요한 속성 태그 상호 운용 가능한 웹 서비스로이를 유지하기 위해 무엇 다만 확실하지 않다. 나는 그것을 구글에서 찾았지만, 다른 소스는 다른 태그를 사용하는 것으로 보인다. 일부는 [ServiceContract()]
을 사용하고 일부는 [WebService()]
을 사용합니다. 그 위에는 [ServiceBehavior()]
과 같은 서버 측 태그가 있으며 필요한지 아닌지 궁금합니다.
XmlSerialization이 필요하지 않습니다. ServiceContract를 Service 클래스에, OperationContract를 메서드에, DataContract를 해당 작업에 사용하는 모든 복합 유형에, DataMember를 웹 서비스 인터페이스를 통해 볼 수있는 데이터 계약의 모든 속성에 배치합니다. 또한 이러한 서비스를 호스팅해야합니다. 가장 간단한 방법은 Visual Studio에서 새로운 WCF 응용 프로그램을 만드는 것입니다. 손으로 직접 수행하는 것은 쉽지 않습니다. – fejesjoco