C# 使用web服务时未保存一个属性
我有一个目标:C# 使用web服务时未保存一个属性,c#,asp.net-mvc,wcf,entity-framework,C#,Asp.net Mvc,Wcf,Entity Framework,我有一个目标: public class Announcement { public int Id { get; set; } public DateTime DateSent { get; set; } private IList<string> _recipients; public IList<string> Recipients { get { ret
public class Announcement
{
public int Id { get; set; }
public DateTime DateSent { get; set; }
private IList<string> _recipients;
public IList<string> Recipients
{
get { return _recipients; }
set { _recipients = value; }
}
public string RecipientsString
{
get { return String.Join("\n", _recipients); }
set { _recipients = value.Split('\n').ToList(); }
}
}
公开课公告
{
公共int Id{get;set;}
public DateTime DateSent{get;set;}
私人IList_接受者;
公共IList接收者
{
获取{return\u recipients;}
设置{u recipients=value;}
}
公共字符串接收方字符串
{
获取{return String.Join(“\n”,_recipients);}
设置{u recipients=value.Split('\n').ToList();}
}
}
我可以使用DateSent和RecipientString(电子邮件地址字符串,以\n分隔)填充此对象,并将其保存到数据库中,不会出现任何问题
现在我想把它转移到一个web服务,这样我们就可以跨多个应用程序使用它
我在webservice中创建了完全相同的对象,并在本地(在服务上)测试了一切,一切正常
但是如果我在客户机上填充对象并将其传递给要保存的服务,RecipientString总是空的(不是null)。发送的日期很好
我猜数据在序列化中丢失了,但我不知道为什么,或者如何解决这个问题。我还认为,这可能与电子邮件地址中的@有关,但我排除了这种可能性。有什么建议吗?之所以会出现这种情况,是因为生成用于描述服务的de WSDL无法描述get和set函数中使用的函数。我建议您将RecipientsString作为一个公共属性,并在类上创建一个私有方法GetRecipientsString,该方法处理RecipientsString值并返回所需的列表。发生这种情况的原因是,为描述服务而生成的de WSDL无法描述get和set函数中使用的函数。我建议您将RecipientsString作为一个公共属性,并在类上创建一个私有方法GetRecipientsString,该方法处理RecipientsString值并返回所需列表。使用RecipientsString而不使用支持字段。使用RecipientsString而不使用支持字段