I am using reflection to find all instances of ICollector
and instantiate each using this code block
var instances = from t in Assembly.GetExecutingAssembly().GetTypes()
where t.GetInterfaces().Contains(typeof(ICollector))
&& t.GetConstructor(Type.EmptyTypes) != null
select Activator.CreateInstance(t) as ICollector;
The instances are created just fine, but when I call the method Start()
on each instance (which is part of the interface), then properties set inside the method lose their value once the method is exited.
For example an instance of ICollector
is NetworkCollector
and it has this code in the Start()
method
instanceNames = networkCategory.GetInstanceNames().ToList();
currentActivity = new List<CounterValues>();
counters = new List<PerformanceCounter>();
And those variables are also populated with actual values. When I subsequently call those variables in the Collect()
method (also part of the interface ICollector
) they are all null.
Am I missing something, or are these instances losing state?