我正在使用 Asp.Net Mvc Web api RC。
我想使用自定义属性隐藏模型类的字段/属性。下面是我的课:
public class Employee
{
public int EmpId { get; set; }
public string Name{ get; set; }
//Wanted to hide this attribute based on custom logic. Like for a certain role, i want to hide the designation
public string Designation{ get; set; }
public string Department{ get; set; }
}
我们如何使用数据注释来实现。我的意思是我想创建一个单独的属性以这种方式使用:
[HideForRoles(Roles="Admin,Writer")]
public string Designation{ get; set; }
更新 :
因为我正在开发 web api。响应被序列化为 XML 或 Json 格式,具体取决于格式化程序。所以更好的问题是如何在写入响应时不允许字段被序列化。
但是,一种选择可能是使用 IgnoreDataMember 属性。喜欢
[IgnoreDataMember]
public string Designation{ get; set; }
但以上是一个编译时声明,我不能强加任何条件。
问题:如何在运行时根据某些条件进行序列化时忽略字段/属性?