我正在使用 WCF 数据服务(现在为 5.6),并且由于不支持枚举(以及出于其他原因),我有一些附加属性添加到客户端类中,我打算在 SaveChanges 期间使用 WritingEntity 事件按照http中的示例删除这些属性://blogs.msdn.com/b/phaniraj/archive/2008/12/11/customizing-serialization-of-entities-in-the-ado-net-data-services-client-library.aspx
我的构造函数附加了该事件,但我发现有时事件会触发,而其他时候(更常见)则不会。
public MyDataContext(System.Uri serviceRoot, bool ignoreProperties)
: this(serviceRoot)
{
if (ignoreProperties)
this.WritingEntity += EdiContext_WritingEntity;
this.SendingRequest2+=OnSendingRequest;
}
保存更改
db.AttachTo("Maps", map, "*");
db.UpdateObject(map);
ProcessMapCoordinates(db, map);
ProcessModifiers(map, db);
db.SaveChanges();
SendingRequest2 事件确实会触发,我使用它来将一些标头信息附加到请求中以支持多个数据
private void OnSendingRequest(object sender, SendingRequest2EventArgs e)
{
e.RequestMessage.SetHeader("profile", ClientSettings.Instance.Profile);
}
有谁知道在什么情况下不会触发 WritingEntity 事件?
是否有另一种方法可以防止部分类的扩展属性被序列化?
谢谢