2013-02-05 56 views
0

我有一组由类表示的测试步骤。每个人都有自己的数据和方法,所以标准的东西。全部从XML配置读入。通过所有派生类从基类共享对象

但是,一次测试的结果可能会在下一次测试中用作参数,我在尝试工作时遇到了一些麻烦,因为这是实现此目的的最佳方式。

我想过有一个类,实质上是一个对象字典,所以每个存储的值将能够与一个唯一的键和任何关键的任何地方关联使用后,然后测试将能够把它从字典和使用它(显然错误/类型检查等将需要相当好)。我不太喜欢这个,但不确定是否有其他模式的c#功能可以处理这个问题?

因此,一些有点像这样:

<TestRunner xsi:type="TestType1" OutputValue="ResultIndx1"/> 
<TestRunner xsi:type="TestType2" InputValue="ResultIndx1"/> 

我不相信在C#中,可以有基类层次结构是内的对象,然后通过所有基类共享的是什么呢?

所以这让我更多地思考Singleton,但我希望尽可能避免它。

有关如何处理这个问题的任何想法?

谢谢

回答

2

基类中的非私有静态成员应该就足够了。

+0

感谢您的回应。我在互联网上搜寻信息,并且可能发誓我读过基础类中的静态图不共享。看起来我被误导了! – Firedragon

+0

@Firedragon - 尝试一下,你会看到,只需添加一个静态成员,该成员在基类中是受保护的,内部的或公共的,并且您将可以从派生类实例访问它。 – dutzu

+0

谢谢。如果我这样做'保护静态字典<字符串,对象>共享数据=新字典<字符串,对象>();'那么这将只对所有类做一次,但如果我这样做在一个属性或构造函数,我需要检查它已被初始化,以免多次执行它? – Firedragon