[RoleHolder]public class Person{}
public class SomeClass{ public void DoSomething(Person person) { if (!person.RoleHolder.HasRole<EmployeeRole>()) throw new ArgumentException(.....); SomeOtherClass.DoSomethingElse( (IRoleHolder) person ); }}