我有使用原始消息(消息类)的 WCF 服务。
1)服务端:
[DataContract]
public class Person
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
[ServiceContract]
public interface ITestService
{
[OperationContract(Action = TestService.RequestAction3)]
void AddNewPerson(Message newPerson);
public void AddNewPerson(Message newPerson)
{
Person personToAdd = newPerson.GetBody<Person>();
Employees.Persons.Add(personToAdd);
}
2)客户端:
TestServiceClient client = new TestServiceClient();
String RequestAction3 = "http://localhost:4249/Message_RequestAction3";
TestService.Person person = new TestService.Person
{
Id = 6,
FirstName = "Aleksey",
LastName = "Alekseyev"
};
Message request3 = Message.CreateMessage(MessageVersion.Default, RequestAction3, person);
string soapRequest = request3.ToString();
client.AddNewPerson(request3);
这里有什么问题?我在服务端有放置在 TestService 命名空间中的 Person 类(数据协定):TestService.Person。服务方面一切都很好。但是在VS2008中使用“添加服务引用...”选项将服务引用添加到客户端后,客户端没有这样的类型(TestService.Person)。我做了什么来解决这个问题?我只是在客户端复制了带有原始数据协定 (TestService.Person) 的文件,创建了 Person 类型的对象并将其传递给服务方法。
我的问题是 - 我是以正确的方式做的还是有另一种方法来做到这一点?
先感谢您。
戈兰