can anyone help me?
I have some reflection code that i have written and it seems to work well but it gives me an error when trying to pass in "this" to the GetValue.
I am a little stuck, i think the problem is that i am running the reflection code in frmMain adn the AbCCompany is defined in another project but i have a reference.
I get the error
Field 'AbcCompany' defined on type 'MyApp.Companies.Config' is not a field on the target object which is of type 'MyApp.frmMain'.
Here is the code..
var companies = MyIems.Companies.GetType().GetFields();
foreach (var list in companies )
{
List<CompanyBase> thisCompanyCollection = (List<CompanyBase>)list.GetValue(this);
foreach (var company in thisCompanyCollection )
{
Console.WriteLine();
}
}
EDIT
I forgot to mention that Inside "Companies" is lots of List where xxx is a class.. all classes inherit from CompanyBase. i.e AbcCompany
Instead of passing in
this
toGetValue
you need to pass an instance ofMyApp.Companies.Config
.If you look at the documentation, you can see that the exception your getting is because the
obj
parameter isn't of the type (or inherits from it) that the current field is declared on.Assuming that
MyApp.Companies.Config
has a parameterless constructor, the following should work: