Example #1
0
 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));
     });
 }
Example #2
0
        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);
        }
Example #3
0
 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);
 }