私はこのオブジェクトを持っています:
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(); }
}
}
このオブジェクトに DateSent と RecipientString (\n で区切られた電子メール アドレスの文字列) を入力し、問題なくデータベースに保存できます。
これを Web サービスに移行して、複数のアプリで使用できるようにします。
Webサービスでまったく同じオブジェクトを作成し、ローカルで(サービス上で)テストすると、すべてが期待どおりに機能します。
しかし、クライアントにオブジェクトを設定し、それをサービスに渡して保存すると、RecipientString は常に空 (null ではない) になります。DateSent は問題ありません。
シリアル化でデータが失われていると推測していますが、その理由や解決方法がわかりません。また、メールアドレスの@に関係があるのではないかと思いましたが、それは除外しました。助言がありますか?