Mono.Cecil.MetadataImporter.ResolveFieldDefinition C# (CSharp) Method

ResolveFieldDefinition() static private method

static private ResolveFieldDefinition ( System.Reflection field ) : FieldInfo
field System.Reflection
return System.Reflection.FieldInfo
        static SR.FieldInfo ResolveFieldDefinition(SR.FieldInfo field)
        {
            #if !SILVERLIGHT
            return field.Module.ResolveField (field.MetadataToken);
            #else
            return field.DeclaringType.GetGenericTypeDefinition ().GetField (field.Name,
                SR.BindingFlags.Public
                | SR.BindingFlags.NonPublic
                | (field.IsStatic ? SR.BindingFlags.Static : SR.BindingFlags.Instance));
            #endif
        }

Usage Example

Esempio n. 1
0
        public FieldReference ImportField(FieldInfo field, ImportGenericContext context)
        {
            FieldReference fieldReference;
            TypeReference  typeReference = this.ImportType(field.DeclaringType, context);

            if (MetadataImporter.IsGenericInstance(field.DeclaringType))
            {
                field = MetadataImporter.ResolveFieldDefinition(field);
            }
            context.Push(typeReference);
            try
            {
                fieldReference = new FieldReference()
                {
                    Name          = field.Name,
                    DeclaringType = typeReference,
                    FieldType     = this.ImportType(field.FieldType, context)
                };
            }
            finally
            {
                context.Pop();
            }
            return(fieldReference);
        }