我有一个带有一堆属性的用户对象。我有一个要求,当用户设置他们的信息时,他们需要能够声明他们个人资料的哪些属性对其他人可见。
我预想的方式是添加一个额外的属性 - 一个字符串列表,其中包含公开可见的属性名称。然后我可以实现一个名为 ToPublicView() 的方法或类似的东西,它会使用反射将非公共(public)属性设置为 null 或默认值。
这是一种合理的方法,还是有更好的方法?
最佳答案
我认为这是最简单的选项。如果反射开始影响您的性能,您可能需要一个属性委托(delegate)字典来访问这些值。
并且由于要求不具有动态属性而只是标记现有属性,因此以动态方式拥有所有属性(如属性对象列表)没有意义。此外,当您必须将它们用于应用程序的其余部分时,将它们作为实际属性将使代码更具可读性。
关于c# - 具有用户可配置属性 "visibility"的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819395/