private void DetermineMethods()
{
string methodName = $"On{PropertyDefinition.Name}Changed";
var declaringType = PropertyDefinition.DeclaringType;
var callbackReferences = (from method in declaringType.Methods
where method.Name == methodName
select method).ToList();
foreach (var callbackReference in callbackReferences)
{
if (callbackReference != null)
{
if (callbackReference.HasParameters)
{
FodyEnvironment.LogWarning($"Method '{declaringType.FullName}.{callbackReference.Name}' matches automatic change method name but has parameters and will not be used as automatic change callback. Rename the method to remove this warning or remove parameters to use as automatic callback method.");
continue;
}
MethodReference finalCallbackReference = callbackReference;
if (declaringType.HasGenericParameters)
{
finalCallbackReference = finalCallbackReference.MakeGeneric(declaringType);
}
ChangeCallbackReference = finalCallbackReference;
break;
}
}
}