public FieldImplementation(FieldReferenceStep referenceStep, System.Reflection.FieldInfo fieldInfo) { this.referenceStep = referenceStep; this.fieldInfo = fieldInfo; this.isResolved = PlatformTypeHelper.GetFieldType(this.fieldInfo) != null; this.serializationVisibility = new DelayedInstance <DesignerSerializationVisibility>(() => PlatformTypeHelper.GetSerializationVisibility(this.PlatformTypes, this.fieldInfo)); this.defaultValue = new DelayedInstance <KeyValuePair <bool, object> >(() => { Type fieldType = PlatformTypeHelper.GetFieldType(this.fieldInfo); if (fieldType == null) { return(new KeyValuePair <bool, object>(false, null)); } return(PlatformTypeHelper.GetDefaultValue(this.PlatformTypes, this.fieldInfo, fieldType)); }); }
public static FieldReferenceStep GetReferenceStep(ITypeResolver typeResolver, System.Reflection.FieldInfo fieldInfo) { FieldReferenceStep fieldReferenceStep; IType type = typeResolver.GetType(fieldInfo.DeclaringType); IMutableMembers mutableMember = (IMutableMembers)type; IMemberId member = mutableMember.GetMember(Microsoft.Expression.DesignModel.Metadata.MemberType.Field, fieldInfo.Name); if (member == null) { fieldReferenceStep = new FieldReferenceStep(typeResolver, type, fieldInfo); mutableMember.AddMember(fieldReferenceStep); } else { fieldReferenceStep = Member.GetMemberAs <FieldReferenceStep>(member); } return(fieldReferenceStep); }
internal static IMember GetMember(ITypeResolver typeResolver, Type type, MemberType memberTypes, string memberName) { if (TypeHelper.IsSet(memberTypes, MemberType.Property)) { ITypeId typeId = (ITypeId)typeResolver.GetType(type); IProperty property = (IProperty)PlatformTypeHelper.GetProperty(typeResolver, typeId, memberTypes & MemberType.Property, memberName); if (property != null) { return((IMember)property); } } if (TypeHelper.IsSet(memberTypes, MemberType.Event)) { IEvent @event = PlatformTypeHelper.GetEvent(typeResolver, type, memberName); if (@event != null) { return((IMember)@event); } } if (TypeHelper.IsSet(memberTypes, MemberType.Field)) { FieldInfo fieldInfo = PlatformTypeHelper.GetFieldInfo(type, memberName); if (fieldInfo != (FieldInfo)null) { return((IMember)FieldReferenceStep.GetReferenceStep(typeResolver, fieldInfo)); } } if (TypeHelper.IsSet(memberTypes, MemberType.Method)) { MethodInfo method = PlatformTypeHelper.GetMethod(type, memberName); if (method != (MethodInfo)null) { IType type1 = typeResolver.GetType(method.DeclaringType); if (type1 == null) { return((IMember)null); } return((IMember)Method.GetMethod(typeResolver, type1, method)); } } return((IMember)null); }