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); } } }
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); }