gpt4 book ai didi

c# - 类中的 WCF 功能

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:35 26 4
gpt4 key购买 nike

我最近将 WPF 应用程序转换为使用 WCF 服务(为关联网站编写,目的是转换应用程序)。

除了我从模型中进行的一些实时数据绑定(bind)外,一切都很好。

public decimal? SalePrice
{
get { return _salePrice; }
set
{
_salePrice = value;
TotalSalesPrice = value + _warranty;
}
}

在 References.cs 中,这变成了

[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<decimal> SalePrice {
get {
return this.SalePriceField;
}
set {
if ((this.SalePriceField.Equals(value) != true)) {
this.SalePriceField = value;
this.RaisePropertyChanged("SalePrice");
}
}
}

然后将使用 INotifyPropertyChanged 使表单保持最新。

解决此问题的最佳方法是什么?

我已经为这个客户端功能编写了一个单独的类,但是有多个这样的类,这似乎是一种非常非语义和漫长的做事方式。我注意到它们是部分的,并试图使它们成为虚拟的,然后有一个 ovveride 客户端,但是虚拟属性在序列化时被删除了。

非常感谢任何帮助,奥利

最佳答案

您不应使用生成的 DataContracts 进行数据绑定(bind)。我认为他们在生成的文件上实现 INotifyPropertyChanged 真的很遗憾,因为它鼓励人们做错事

数据契约只是根据服务的数据 View 。这不是您的表单/窗口必然需要的数据 View 。

您应该将数据的服务表示视为您的模型,并将您的 View 绑定(bind)到以最方便的方式为 View 呈现数据的 ViewModel。这也意味着随着服务的发展,您的数据绑定(bind)不会中断,并且您知道您必须做的所有更改都可以在 View 模型中完成

关于c# - 类中的 WCF 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com