为清楚起见,我使用 C# 3.5/Asp.Net MVC 2
这是我所做的:我希望能够在运行时向对象添加/删除功能。所以我只是像这样在我的类中添加了一个通用对象字典:
public Dictionary<int, object> Components { get; set; }
然后我可以在运行时将任何类型的 .Net 对象添加/删除到这个字典中。要插入一个对象,我会这样做:
var tag = new Tag();
myObject.Components.Add((int)Types.Components.Tag, tag);
然后检索我只是这样做:
if(myObject.Components.ContainsKey((int)Types.Components.Tag))
{
var tag = myObject.Components[(int)Types.Components.Tag] as Tag;
if(tag != null) { //do stuff }
}
不知何故,我觉得这样做很偷偷摸摸。它工作正常,但我想知道你们如何看待它作为最佳实践。
感谢您的意见,丹尼尔