У меня есть служба WCF и клиентское приложение WPF, созданное с использованием шаблона MVVM. Указанная служба WCF позволяет клиенту WPF манипулировать контрактами, в которых описываются данные, которые можно отправлять и получать от службы.
Типовой договор, определенный Служебная сторона:
[DataContract()]
public class UserContract : BaseContract
{
[DataMember()]
public string UserName { get; set; }
[DataMember()]
public string FirstName { get; set; }
}
Если я рассматриваю эти ссылочные контракты как часть уровня модели моего приложения MVVM, какова должна быть связь между этими контрактами и классами моделей моего уровня модели? (Примеры кода на стороне клиента)
1. Наследование? Модели наследуют контракты.
public class UserModel : UserContract
2. Композиция? Модели содержат экземпляр соответствующего договора.
public class UserModel
{
public UserContract userContract {get;set;}
}
3. Добавление? Контракты объявляются частичными, я могу просто "завершить" контракты и использовать их напрямую в качестве моих классов моделей.
public partial class UserContract
{
}