我使用的是Azure移动应用服务,在PATCH方法中,我收到了Delta类型的对象(请参阅MSDN)。
我收到一些带有空值的字段,我想从Delta输入对象中删除:如何执行此操作?
e.g。我有一个像
这样的JSON输入{
"Content":"test",
"CreatedAt":null
...
}
这将映射一个继承自Microsoft.Azure.Mobile.Server.EntityData的实体 e.g。
public class MyBean : EntityData
{
public MyBean() { }
public string Content { get; set; }
}
我想删除字段" CreatedAt",顺便说一下,在EntityData父对象中声明了Microsoft库的一部分(因此我无法直接访问它)
答案 0 :(得分:1)
我不认为您应该尝试删除CreatedAt,而是改用传入的Delta并创建一个新的。您可以包含想要的字段,也可以排除不需要的字段。
void swap(int *p, int *q){
int tmp;
tmp = *p;
*p = *q;
*q = tmp;
}
答案 1 :(得分:0)
如果您使用Newtonsoft.Json序列化实体,则可以使用属性的conditional serialization。
要有条件地序列化属性,请添加一个返回 与属性名称相同的布尔值,然后在方法前添加前缀 以ShouldSerialize命名。方法的结果确定是否 该属性已序列化。如果该方法返回true,则 属性将被序列化,如果返回false,则该属性 将被跳过。
public class MyBean : EntityData
{
public MyBean() { }
public string Content { get; set; }
public bool ShouldSerializeCreatedAt()
{
return false;
// Or you can add some condition to whether serialize the property or not on runtime
}
}