Hi together
To calculate a code metric (ATFD - Access to Foreign Data), I'd like to
check which getter methods in other classes are called by the class I
measure. I know how to list all methods that are called by another method,
but how can I check if the method is a getter method? And how do I check
which field is returned in the getter method?
I was able to do it for fields that are directly accessed (syntax may be
little bit different than in MonoCecil since i used DrivenMetrics) but now
I'd like to do it also for getter methods:
foreach (MethodDefinition method in type.Methods)
{
foreach (Instruction instruction in
method.Body.Instructions)
{
if (instruction.OpCode == OpCodes.Ldfld)
{
FieldReference field = instruction.Operand as
FieldReference;
if (fields.Contains(field.ToString()) &&
!accesses.Contains(field.ToString()))
{
accesses.Add(field.ToString());
Console.WriteLine("Class " + type.Name + "
accesses field " + field.Name + " of a foreign class.");
}
}
}
}
Thanks for any hints!
--
--
mono-cecil