示例#1
0
        public static XpandCalcMemberInfo CreateCalculabeMember(this XPClassInfo classInfo, string propertyName, Type propertyType, params Attribute[] attributes)
        {
            var newMemberInfo = new XpandCalcMemberInfo(classInfo, propertyName, propertyType, null, true, false);

            foreach (Attribute attribute in attributes)
            {
                newMemberInfo.AddAttribute(attribute);
            }
            return(newMemberInfo);
        }
示例#2
0
        private static void CreateXpandDefaultProperty(ITypesInfo typesInfo)
        {
            var infos = typesInfo.PersistentTypes.Select(info => new{ TypeInfo = info, Attribute = info.FindAttribute <XpandDefaultPropertyAttribute>() })
                        .Where(arg => arg.Attribute != null).ToList();

            foreach (var info in infos.Where(arg => arg.TypeInfo.Base.FindAttribute <XpandDefaultPropertyAttribute>() == null))
            {
                var classInfo  = Dictiorary.GetClassInfo(info.TypeInfo.Type);
                var memberInfo = new XpandCalcMemberInfo(classInfo, info.Attribute.MemberName, typeof(string), info.Attribute.Expression);
                if (info.Attribute.InVisibleInAllViews)
                {
                    memberInfo.AddAttribute(new InvisibleInAllViewsAttribute());
                }
                typesInfo.RefreshInfo(info.TypeInfo);
                ((TypeInfo)info.TypeInfo).DefaultMember = info.TypeInfo.FindMember(info.Attribute.MemberName);
            }
        }