internal FieldInfo GetMissingFieldOrThrow(Type declaringType, string name, FieldSignature signature) { if (resolveMissingMembers) { return(new MissingField(declaringType, name, signature)); } throw new MissingFieldException(declaringType.ToString(), name); }
public override bool Equals(object obj) { FieldSignature other = obj as FieldSignature; return(other != null && other.fieldType.Equals(fieldType) && other.mods.Equals(mods)); }
public override bool Equals(object obj) { FieldSignature other = obj as FieldSignature; return(other != null && other.fieldType.Equals(fieldType) && Util.ArrayEquals(other.optionalCustomModifiers, optionalCustomModifiers) && Util.ArrayEquals(other.requiredCustomModifiers, requiredCustomModifiers)); }
private static void AddNamedArgument(List <CustomAttributeNamedArgument> list, Type attributeType, string fieldName, Type valueType, object value) { // some fields are not available on the .NET Compact Framework version of DllImportAttribute/MarshalAsAttribute FieldInfo field = attributeType.FindField(fieldName, FieldSignature.Create(valueType, new CustomModifiers())); if (field != null) { list.Add(new CustomAttributeNamedArgument(field, new CustomAttributeTypedArgument(valueType, value))); } }
private static FieldInfo GetField(Type type, string name, Type fieldType) { Type org = type; for (; type != null && !type.__IsMissing; type = type.BaseType) { foreach (FieldInfo field in type.__GetDeclaredFields()) { if (field.IsPublic && !field.IsStatic && field.Name == name) { return(field); } } } // if the field is missing, we stick the missing field on the first missing base type if (type == null) { type = org; } FieldSignature sig = FieldSignature.Create(fieldType, new CustomModifiers()); return(type.FindField(name, sig) ?? type.Module.universe.GetMissingFieldOrThrow(type, name, sig)); }
internal virtual FieldInfo FindField(string name, FieldSignature signature) { foreach (FieldInfo field in __GetDeclaredFields()) { if (field.Name == name && field.FieldSignature.Equals(signature)) { return field; } } return null; }
internal override FieldInfo FindField(string name, FieldSignature signature) { return(new MissingField(this, name, signature)); }
internal MissingField(Type declaringType, string name, FieldSignature signature) { this.declaringType = declaringType; this.name = name; this.signature = signature; }
internal override FieldInfo FindField(string name, FieldSignature signature) { return new MissingField(this, name, signature); }
internal FieldInfo GetMissingFieldOrThrow(Module requester, Type declaringType, string name, FieldSignature signature) { if (resolveMissingMembers) { FieldInfo field = new MissingField(declaringType, name, signature); if (ResolvedMissingMember != null) { ResolvedMissingMember(requester, field); } return(field); } throw new MissingFieldException(declaringType.ToString(), name); }