Asp.Net Mvc WebapiRCを使用しています。
カスタム属性を使用して、モデルクラスのフィールド/プロパティを非表示にしたかったのです。以下は私のクラスです:
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; }
アップデート :
私はWebAPIを開発しています。応答は、フォーマッターに応じてXMLまたはJson形式のいずれかにシリアル化されます。したがって、より良い質問は、応答への書き込み中にフィールドをシリアル化できないようにする方法です。
ただし、1つのオプションはIgnoreDataMember属性を使用することです。好き
[IgnoreDataMember]
public string Designation{ get; set; }
しかし、上記はコンパイル時の宣言であり、条件を課すことはできません。
質問:実行時の条件に基づいてシリアル化するときにフィールド/プロパティを無視するにはどうすればよいですか?