我正在开发Silverlight RIA服务解决方案。其中一个要求是向客户端“推送”通知,我正在使用对服务器的阻塞调用来实现这一点,当接收到更新时会返回。这个尝试使用通用的结构来实现,我已经来到这个数据结构:RIA服务变更跟踪
public class Change
{
public ObjectType Type { get; internal set; } // objecttype is an enum
public int ObjectKey { get; internal set; }
public string PropertyName { get; internal set; }
public object OldValue { get; internal set; }
public object NewValue { get; internal set; }
//key required for RIA Services
[Key]
public Guid ChangeGuid { get; private set; }
}
除了在这个设计中的一些明显的缺陷(这只是一个测试),性能OldValue
和NewValue
不可见客户端,由于它们的类型的对象。这些属性的值将始终为Entity Framework primitive。
有没有办法让OldValue
和NewValue
到客户端而不将所有内容都转换为字符串?
由于object
关键字凌乱搜索结果,谷歌搜索没有让我走得很远。
有关我的问题的任何通用解决方案,我们感激。
你的意思是这个类型要么是一个String,DateTime或者其他一些原始类型,而且你不确定它在编译时的类型是什么? –
@Isaac确切地说,它可以是任何用作实体框架对象属性的类型。请参阅http://msdn.microsoft.com/en-us/library/ee382832.aspx – Bas