Первое изображение определяет пространство имен ServiceContract, чтобы указать пространство имен вашего тела, вы можете попробовать контракт сообщения.
Но следует обратить внимание, что возвращаемый тип также должен иметь атрибут MessageContract.
Ниже мой код.
[MessageContract(WrapperNamespace = "www.message.com")]
public class Employee
{
[MessageBodyMember(Namespace = "www.message.com")]
public string Id { get; set; }
[MessageBodyMember(Namespace = "www.message.com")]
public string Name { get; set; }
[MessageBodyMember(Namespace = "www.message.com")]
public string Department { get; set; }
[MessageBodyMember(Namespace = "www.message.com")]
public string Grade { get; set; }
}
[ServiceContract]
public interface IEmployeeService
{
[OperationContract]
Employee GetEmployee(Employee employee);
}
public class EmployeeService : IEmployeeService
{
public Employee GetEmployee(Employee employee)
{
return employee;
}
}
Когда я вызываю службу у клиента
using (ChannelFactory<IEmployeeService> ChannelFactory = new ChannelFactory<IEmployeeService>("emp"))
{
// ChannelFactory.Endpoint.EndpointBehaviors.Add(new MyEndpointBehavior());
IEmployeeService employeeService = ChannelFactory.CreateChannel();
employeeService.GetEmployee(new Employee() { Name = "abc", Department = "dep", Grade = "male", Id = "1er" });
// List<Employee> list= employeeService.GetList();
Console.Read();
}
Результат.
Для получения дополнительной информации, пожалуйста, обратитесь к https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/using-message-contracts