Example #1
0
 private void CheckType(EntityType ospaceEntityType)
 {
     this._members = new HashSet <EdmMember>();
     foreach (EdmMember member in ospaceEntityType.Members)
     {
         PropertyInfo topProperty = ospaceEntityType.ClrType.GetTopProperty(member.Name);
         if (topProperty != (PropertyInfo)null && EntityProxyFactory.CanProxyGetter(topProperty) && LazyLoadBehavior.IsLazyLoadCandidate(ospaceEntityType, member))
         {
             this._members.Add(member);
         }
     }
 }
        private void CheckType(EntityType ospaceEntityType)
        {
            _members = new HashSet <EdmMember>();

            foreach (var member in ospaceEntityType.Members)
            {
                var clrProperty = EntityUtil.GetTopProperty(ospaceEntityType.ClrType, member.Name);
                if (clrProperty != null
                    &&
                    EntityProxyFactory.CanProxyGetter(clrProperty)
                    &&
                    LazyLoadBehavior.IsLazyLoadCandidate(ospaceEntityType, member))
                {
                    _members.Add(member);
                }
            }
        }
Example #3
0
            private static void EmitBaseGetter(
                TypeBuilder typeBuilder,
                PropertyBuilder propertyBuilder,
                PropertyInfo baseProperty)
            {
                if (!EntityProxyFactory.CanProxyGetter(baseProperty))
                {
                    return;
                }
                MethodInfo       meth             = baseProperty.Getter();
                MethodAttributes methodAttributes = meth.Attributes & MethodAttributes.MemberAccessMask;
                MethodBuilder    mdBuilder        = typeBuilder.DefineMethod("get_" + baseProperty.Name, methodAttributes | MethodAttributes.Virtual | MethodAttributes.HideBySig | MethodAttributes.SpecialName, baseProperty.PropertyType, Type.EmptyTypes);
                ILGenerator      ilGenerator      = mdBuilder.GetILGenerator();

                ilGenerator.Emit(OpCodes.Ldarg_0);
                ilGenerator.Emit(OpCodes.Call, meth);
                ilGenerator.Emit(OpCodes.Ret);
                propertyBuilder.SetGetMethod(mdBuilder);
            }