具有用户可配置属性"可见性"的对象

Cor*_*ork 5 c# oop properties

我有一个带有一堆属性的User对象.我要求说明当用户设置他们的信息时,他们需要能够说明他们的个人资料的哪些属性对其他人可见.

我设想的方式是添加一个额外的属性 - 一个字符串列表,其中包含公开可见的属性名称.然后,我可以实现一个名为ToPublicView()的方法或类似的方法,它将使用反射将非公共属性设置为null或default.

这是一种合理的方法,还是有更好的方法?

Ivo*_*Ivo 1

我认为这是最简单的选择。如果反射开始影响你的性能,你可能需要一个属性委托字典来访问值。

由于要求不是拥有动态属性而只是标记现有属性,因此以动态方式拥有所有属性(如属性对象列表)是没有意义的。此外,当您必须将它们用于应用程序的其余部分时,将它们作为实际属性将使代码更具可读性。