DataContract为: -
namespace AssemblyA
{
public class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
}
}
服务如下: -
[ServiceContract]
public interface IServer
{
[OperationContract]
Person GetPerson();
[OperationContract]
Person UpdatePerson( Person person )
}
客户方: -
using AssemblyA;
namespace AssemblyB
{
class Program
{
static void Main(string[] args)
{
IServer server = factory.CreateChannel();
Person person = server.GetPerson();
person.FirstName = "Kilroy";
person.LastName = "";
Person p = server.UpdatePerson(person);
String str = p.LastName;
}
}
}
我有两个问题: -
我将LastName属性设置为空白并调用GetPerson方法。在那之后,当我检查LastName属性时,它将变为空白而不是空白。
第二个问题是如果我在Person类中进行如下更改: -
public class Person
{
String _FirstName;
String _LastName;
public string FirstName
{
get{}
set
{
_FirstName=value;
_LastName="XYZ";
}
}
public string LastName { get;set; }
}
在此之后,我将我的客户更改为: -
IServer server = factory.CreateChannel();
Person person = server.GetPerson();
person.FirstName = "Kilroy";
person.LastName = "abc";
Person p = server.UpdatePerson(person);
String str = p.LastName;
然后在str中显示“XYZ”而不是“abc”。但我期待它的“abc”。
请告知我必须在我的项目中使用它。
答案 0 :(得分:0)
至于你的第二个问题,你有一个属性LastName和一个字段_LastName,它们没有关系。在您的客户端代码中,设置FirstName,将_LastName 字段设置为“abc”,然后设置LastName 属性。
现在你有Person类,字段_LastName设置为“XYZ”,属性LastName设置为“abc”。