【发布时间】:2012-06-04 20:55:22
【问题描述】:
我有一个带有一堆属性的用户对象。我有一个要求,即当用户设置他们的信息时,他们需要能够说明其个人资料的哪些属性对其他人可见。
我设想的方式是添加一个附加属性 - 一个字符串列表,其中包含公开可见的属性名称。然后我可以实现一个名为 ToPublicView() 的方法或类似的方法,使用反射将非公共属性设置为 null 或默认值。
这是一个合理的方法,还是有更好的方法?
【问题讨论】:
-
我认为这是最简单的选项。如果反射开始影响你的表现,你可能需要一个属性委托字典来访问这些值。
-
什么?这是一个疯狂、疯狂、疯狂的选择。
-
为什么?要求不具有动态属性,因此以动态方式拥有所有属性是没有意义的。此外,当您必须将它们用于应用程序的其余部分时,将它们作为实际属性将使代码更具可读性。
-
业务需求与您实际编写的代码没有直接关系。如果是这样,那会有点疯狂,不是吗?
-
很高兴看到大家都同意 ;) 我喜欢 Property 对象的想法,但我仍然不确定措辞强硬的反对(“疯狂、疯狂、疯狂”)背后的确切原因。我只是想知道原因是什么,因为最初的想法仍然吸引我。
标签: c# oop properties