c# - 具有用户可配置属性 "visibility"的对象

标签 c# oop properties

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

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

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

最佳答案

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

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

关于c# - 具有用户可配置属性 "visibility"的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819395/

相关文章:

oop - 关于开放/封闭主体的困惑

java - 属性文件中的消息格式选择

javascript - 在 JavaScript 中观察对象属性的变化

c# - 在多个分隔符上拆分字符串并将它们保留在输出中

c# - 自托管 JobHost 时查找托管 Uri

c# - 需要删除XML字符串中的非法字符

java - 计算字符串中空格的递归方法如何工作?

c# - C# 中的 unsigned char* C++ 等价物(用于原始数据)

java - 尝试从其他类访问 ArrayList 时出现 NullPointerException

c# - 使用反射按声明顺序获取属性