2009-11-24 71 views
0

我一直在开发一个配置系统,允许我轻松地跨多个目标版本和访问配置值,而且我遇到了一些设计问题。设计问题 - 在一个结构中管理两种类型的数据

问题就像这样。我有一个类叫它FooConfig。这个类基本上是一个数据传输对象,它只有属性。现在配置系统能够接受任何类(在这种情况下,它将采用FooConfig),并反映所有获取和设置方法的属性。然后它将采用这些值并填充另一个名为ConfigSettings的类。 ConfigSettings类基本上拥有一系列Property结构和其他一些东西,但这并不重要。

我面临的问题是,我有一个结构(称为Property),用于存放从FooConfig收集的各个数据,并且正在保存在ConfigSettings中。当我将数据存储在一个简单的键值场景中时,这很好,但现在我需要能够在Property结构中存储集合和单个值。

所以我想知道如果任何人有任何想法如何以一个很好的干净的方式管理集合和单个值。通常我会创建两个独立的结构,但Property结构必须可以从ConfigSettings类访问,我需要不可变性。

回答

0

对于您的键/值集合,您可以使用一个Dictionnary对象。

例如

Class ConfigSettings 
{ 
    struct Property 
    { 
     Dictionary<int, string> mydict = new Dictionary<int,string>(); 
     int somevalue; 
    } 
} 

词典是很容易的管理和跟踪项目内。