我需要动态地保存和加载类的属性, 但对此最好的做法是什么?
我现在有两个课我需要保存。
public abstract class BaseComponent {
protected int ComponentID { get; set; }
protected string ComponentName { get; set; }
protected Dictionary GetAllProperties{) { /* Reflection */ }
}
public class Article : BaseComponent {
protected string Title { get; set; }
protected string Content { get; set; }
}
我在这里想:
表:组件,组件ID,Parrent - >和更多 表:ComponentProperties:ComponentID,Key,Value - >还有更多
我需要使用dotNet框架的必须,但仍然保持简洁。 我认为og使用Provider,我需要函数og制作不同的数据提供者:可以保存到xml文件,sql数据库或oracle数据库,你可以命名。
我是否使用提供商或其他人?
答案 0 :(得分:0)
你坚持不懈的答案在很大程度上取决于你所写作的规模。在文件或数据库中存储XML肯定有效,元数据驱动的通用模式(如您所述)也是如此,但是使它们适用于大规模数据可能会有问题。 Salesforce.com最近做了一个关于他们如何处理多租户架构中的动态实体的演示文稿(参见here),但我怀疑你需要那种规模的东西。
我的建议是以XML格式存储。使用通用模式要解决的关键问题是逻辑实体之间的连接以及将属于单个实体的数据拆分为表中的键/值对时的麻烦。
答案 1 :(得分:0)
.Net Framework 2.0或更高版本有一个很棒的类,可以帮助您实现此任务,称为SettingsBase
。您可以在System.Configuration
程序集中找到它。您必须为实例BaseComponentSettings
创建一个类,并从System.Configuration.SettingsBase
派生它。 SettingsBase
是提供者模型,您也可以支持许多数据源。