2 // Mono.ILASM.ExternFieldRef
5 // Jackson Harper (Jackson@LatitudeGeo.com)
7 // (C) 2003 Jackson Harper, All rights reserved
13 namespace Mono.ILASM {
15 public class ExternFieldRef : IFieldRef {
17 private ExternTypeRef owner;
18 private BaseTypeRef type;
21 private bool is_resolved;
22 private PEAPI.FieldRef peapi_field;
24 public ExternFieldRef (ExternTypeRef owner, BaseTypeRef type, string name)
33 public PEAPI.Field PeapiField {
34 get { return peapi_field; }
37 public void Resolve (CodeGen code_gen)
42 owner.Resolve (code_gen);
44 if (owner.UseTypeSpec) {
45 PEAPI.Type owner_ref = owner.PeapiType;
46 code_gen.PEFile.AddFieldToTypeSpec (owner_ref, name,
49 PEAPI.ClassRef owner_ref;
50 owner_ref = (PEAPI.ClassRef) owner.PeapiType;
51 type.Resolve (code_gen);
52 peapi_field = owner_ref.AddField (name, type.PeapiType);