WCF服务对于开发人员来说是非常重要的,它的使用为我们解决了许多难以解决的问题。WCF效率的提高方法有很多注意点,例如何时应该使用OneWay、何时异步。 #t#
WCF的客户端代理类全都实现了INotifyPropertyChanged,我却几乎从来没有见过有人问这个问题。实际上,客户端程序可以不知道WCF的存在,它仅需要调用一个“业务数据GateWay”,这个GateWay再负责数据处理。
这样,测试GUI程序的逻辑时,仅需要测试这个GateWay的逻辑以提高WCF效率。当使用WCF异步获取数据时,可以将数据刷新到GateWay中,例如(对于简单类型):
- static public void Refresh
(this IExtensibleDataObject
obj, IExtensibleDataObject target) - {
- if (!obj.GetType().
IsAssignableFrom(target.GetType())) - throw new NotSupportedException();
- foreach (PropertyDescriptor
p in TypeDescriptor.GetProperties(obj)) - p.SetValue(target, p.GetValue(obj));
- }
之后GateWay就会自动通知客户端UI程序更新。这样做,GUI程序才看起来运行顺畅。
以上就是WCF效率提高的具体方法介绍。