/// <summary> /// Initializes a new instance of the <see cref="CilRuntimeField"/> class. /// </summary> /// <param name="module">The module.</param> /// <param name="name">The name.</param> /// <param name="signature">The signature.</param> /// <param name="token">The token.</param> /// <param name="offset">The offset.</param> /// <param name="rva">The rva.</param> /// <param name="declaringType">Type of the declaring.</param> /// <param name="attributes">The attributes.</param> public CilRuntimeField(ITypeModule module, string name, FieldSignature signature, Token token, uint offset, uint rva, RuntimeType declaringType, FieldAttributes attributes) : base(module, token, declaringType) { this.Name = name; this.Signature = signature; base.Attributes = attributes; base.RVA = rva; }
public CilRuntimeField(IModuleTypeSystem moduleTypeSystem, RuntimeField genericField, FieldSignature signature) : base(moduleTypeSystem, genericField.DeclaringType) { this.Name = genericField.Name; this.Attributes = genericField.Attributes; this.RVA = genericField.RVA; this.Signature = signature; this.SetAttributes(genericField.CustomAttributes); }
public CilRuntimeField(RuntimeField genericField, IMetadataModule module, FieldSignature signature) : base(module, genericField.DeclaringType) { this.Name = genericField.Name; this.Attributes = genericField.Attributes; this.RVA = genericField.RVA; this.Signature = signature; this.SetAttributes(genericField.CustomAttributes); }
/// <summary> /// Initializes a new instance of the <see cref="CilGenericField"/> class. /// </summary> /// <param name="module">The module.</param> /// <param name="genericField">The generic field.</param> /// <param name="signature">The signature.</param> /// <param name="declaringType">Type of the declaring.</param> public CilGenericField(ITypeModule module, RuntimeField genericField, FieldSignature signature, CilGenericType declaringType) : base(module, declaringType) { this.Signature = signature; this.Attributes = genericField.Attributes; //TODO //this.SetAttributes(genericField.CustomAttributes); base.Name = genericField.Name; }
public CilGenericField(IModuleTypeSystem moduleTypeSystem, RuntimeField genericField, FieldSignature signature, CilGenericType declaringType) : base(moduleTypeSystem, declaringType) { this.Signature = signature; this.genericField = genericField; this.Attributes = genericField.Attributes; this.SetAttributes(genericField.CustomAttributes); return; }
public CilGenericField(RuntimeType declaringType, RuntimeField genericField, FieldSignature signature) : base(declaringType.Module, declaringType) { this.genericField = genericField; this.Signature = signature; // FIXME: RVA, Address of these? this.Attributes = genericField.Attributes; this.SetAttributes(genericField.CustomAttributes); }
public override IEnumerable GetValues() { yield return TokenString("Name", row.Name); yield return Value("NameStringIdx", row.Name); yield return Value("Flags", row.Flags.ToString()); yield return Value("SignatureBlobIdx", row.Signature); FieldSignature signature = new FieldSignature(Metadata, row.Signature); yield return Value("Signature Token", signature.Token); yield return Value("Signature Modifier", signature.Modifier.ToString()); yield return Value("Signature Type", signature.Type.ToString()); }
/// <summary> /// Froms the member ref signature token. /// </summary> /// <param name="provider">The provider.</param> /// <param name="token">The token.</param> /// <returns></returns> public static Signature FromMemberRefSignatureToken(ISignatureContext context, IMetadataProvider provider, TokenTypes token) { Signature result; int index = 0; byte[] buffer; provider.Read(token, out buffer); if (0x06 == buffer[0]) { result = new FieldSignature(); result.ParseSignature(context, buffer, ref index); } else { result = new MethodSignature(); result.ParseSignature(context, buffer, ref index); } Debug.Assert(index == buffer.Length, @"Not all signature bytes read."); return result; }
/// <summary> /// Froms the member ref signature token. /// </summary> /// <param name="provider">The provider.</param> /// <param name="token">The token.</param> /// <returns></returns> public static Signature FromMemberRefSignatureToken(IMetadataProvider provider, TokenTypes token) { Signature result; int index = 0; byte[] buffer; provider.Read(token, out buffer); if (0x6 == buffer[0]) { result = new FieldSignature(); result.ParseSignature(buffer, ref index); } else { result = new MethodSignature(token); result.ParseSignature(buffer, ref index); } Debug.Assert(index == buffer.Length, "Not all signature bytes read."); return(result); }
/// <summary> /// Initializes a new instance of the <see cref="FieldSignature"/> class. /// </summary> /// <param name="signature">The signature.</param> /// <param name="genericArguments">The generic arguments.</param> public FieldSignature(FieldSignature signature, SigType[] genericArguments) : base(signature) { ApplyGenericArguments(genericArguments); }
/// <summary> /// Initializes a new instance of the <see cref="FieldSignature"/> class. /// </summary> /// <param name="signature">The signature.</param> public FieldSignature(FieldSignature signature) : base(signature) { }
/// <summary> /// Gets the type of the field. /// </summary> /// <returns>The type of the field.</returns> protected override SigType GetFieldType() { FieldSignature fsig = new FieldSignature (); fsig.LoadSignature (this.Module.Metadata, this.signature); return fsig.Type; }
/// <summary> /// Gets the type of the field. /// </summary> /// <returns>The type of the field.</returns> protected override FieldSignature GetSignature() { FieldSignature fsig = new FieldSignature(); fsig.LoadSignature(this.DeclaringType, this.Module.Metadata, this.signature); return fsig; }
private IList<RuntimeField> GetFields() { this.ProcessSignature(); List<RuntimeField> fields = new List<RuntimeField>(); foreach (CilRuntimeField field in this.genericType.Fields) { FieldSignature fsig = new FieldSignature(); fsig.LoadSignature(this, this.genericType.Module.Metadata, field.Signature.Token); CilGenericField genericInstanceField = new CilGenericField(this, field, fsig); fields.Add(genericInstanceField); } return fields; }
private void ResolveFields() { foreach (CilRuntimeField field in baseGenericType.Fields) { FieldSignature signature = new FieldSignature(field.Signature, genericArguments); CilGenericField genericInstanceField = new CilGenericField(Module, field, signature, this); Fields.Add(genericInstanceField); } }
private IList<RuntimeField> GetFields() { List<RuntimeField> fields = new List<RuntimeField>(); foreach (CilRuntimeField field in this.genericType.Fields) { FieldSignature signature = new FieldSignature(field.MetadataModule.Metadata, field.Signature.Token); signature.ApplyGenericType(this.genericArguments); CilGenericField genericInstanceField = new CilGenericField(moduleTypeSystem, field, signature, this); fields.Add(genericInstanceField); } return fields; }