我有这个寄存器,寄存器中的所有对象,我需要:堆栈溢出
public static class ObjectRegister
{
public static List<IObject> RegisteredObjects = new List<IObject>();
static ObjectRegister()
{
RegisteredObjects.Add(new Object1());
RegisteredObjects.Add(new Object2());
RegisteredObjects.Add(new Object3());
}
}
接下来,我有这个功能,它检查一个列表,如果该列表中的项目通过测试,它创建了一个对象实例,并将其添加到列表:
public static List<IObject> Scan(List<parametar> list)
{
List<IObject> neededObjects = new List<IObject>();
foreach (IObject registeredObject in ObjectRegister.RegisteredObjects)
{
foreach (parametar param in list)
{
if (registeredObject.Test(param)) //returns true or false
{
neededObjects.Add(registeredObject.CreateInstance(param));
}
}
}
return connectedObjects;
}
这里是Object1的CreateInstace方法:
public IObject CreateInstance(parametar param)
{
return new Object1(param);
}
这里是构造函数:
public Object1(parametar newParam)
{
this.param = newParam;
}
该公司密切关注该行trowing StackOverflow的例外:
this.param = newParam;
尝试了所有的可能性,创建一个实例,默认的构造函数,空对象等等等等,但是毫无效果... 有任何想法吗?
感谢名单
编辑: 代码发送到Object1类:
public class Object1: IObject
{
public parametar param
{
get { return this.param; }
set { this.param = value; }
}
internal Object1() { }
public Object1(parametar newParam)
{
this.param = newParam;
}
public bool test(parametar param)
{
// I do the propper checking of the param here, and return the result
}
public IObject CreateInstance(parametar param)
{
return new Object1(param);
}
}
您需要显示Object1类的代码。 – 2011-12-25 17:35:48
看看调用堆栈。 – SLaks 2011-12-25 17:36:00
你真的有一个叫'parametar'的班吗? – 2011-12-25 17:39:35