Catel.Fody.CatelTypeProperty.GetSingleField C# (CSharp) Метод

GetSingleField() приватный статический Метод

private static GetSingleField ( Mono.Cecil.PropertyDefinition property, Code code, Mono.Cecil.MethodDefinition methodDefinition ) : FieldDefinition
property Mono.Cecil.PropertyDefinition
code Code
methodDefinition Mono.Cecil.MethodDefinition
Результат Mono.Cecil.FieldDefinition
        private static FieldDefinition GetSingleField(PropertyDefinition property, Code code, MethodDefinition methodDefinition)
        {
            if (methodDefinition == null)
            {
                return null;
            }
            if (methodDefinition.Body == null)
            {
                return null;
            }
            FieldReference fieldReference = null;
            foreach (var instruction in methodDefinition.Body.Instructions)
            {
                if (instruction.OpCode.Code == code)
                {
                    //if fieldReference is not null then we are at the second one
                    if (fieldReference != null)
                    {
                        return null;
                    }
                    var field = instruction.Operand as FieldReference;
                    if (field != null)
                    {
                        if (field.DeclaringType != property.DeclaringType)
                        {
                            continue;
                        }
                        if (field.FieldType != property.PropertyType)
                        {
                            continue;
                        }
                        fieldReference = field;
                    }
                }
            }
            if (fieldReference != null)
            {
                return fieldReference.Resolve();
            }
            return null;
        }
    }

Same methods

CatelTypeProperty::GetSingleField ( Mono.Cecil.PropertyDefinition property ) : FieldDefinition