コード例 #1
0
ファイル: ClassInfoBuilder.cs プロジェクト: vebin/IQMap
        /// <summary>
        /// Get attribute data
        /// </summary>
        /// <param name="member"></param>
        /// <param name="attributes"></param>
        /// <param name="field"></param>
        protected override void GetPropertyMetadata(MemberInfo member, object[] attributes, IQObjectMapper.Impl.DelegateInfo fieldTemp)
        {
            base.GetPropertyMetadata(member, attributes, fieldTemp);

            bool          ignore        = false;
            string        name          = member.Name;
            bool          alreadyMapped = TempDelegateInfo.ContainsKey(name);
            IDelegateInfo field         = (IDelegateInfo)fieldTemp;

            foreach (var attr in attributes)
            {
                if (attr is IQIgnore)
                {
                    if (alreadyMapped)
                    {
                        throw new InvalidOperationException("The field '" + name + "' is marked for ignore, but has been identified in a constructor already.");
                    }
                    ignore = true;
                    break;
                }
                if (attr is IQPrimaryKey)
                {
                    field.IsPrimaryKey = true;
                }
                IQField fldAttr = null;

                if (attr is IQField)
                {
                    fieldTemp.Include = true;
                    fldAttr           = (IQField)attr;
                }

                string sqlName = field.SqlName;
                if (fldAttr != null)
                {
                    if (!String.IsNullOrEmpty(fldAttr.SqlName))
                    {
                        sqlName = fldAttr.SqlName;
                    }
                    if (fldAttr.PrimaryKey)
                    {
                        field.IsPrimaryKey = true;
                    }
                    if (fldAttr.IgnoreNull)
                    {
                        field.IgnoreNull = true;
                    }
                    if (fldAttr.ReadOnly)
                    {
                        field.IsSqlReadOnly = true;
                    }
                }
                field.SqlName = sqlName;
            }
            if (ignore)
            {
                field.Include = false;
            }
        }
コード例 #2
0
 public bool TryGetValue(string fieldName, out IDelegateInfo info)
 {
     IQObjectMapper.IDelegateInfo baseInfo;
     if (base.TryGetValue(fieldName, out baseInfo))
     {
         info = (IDelegateInfo)baseInfo;
         return(true);
     }
     else
     {
         info = null;
         return(false);
     }
 }
コード例 #3
0
        private void ParseParams(IDelegateInfo Info)
        {
            string text3;
            string text1  = string.Empty;
            string text2  = string.Empty;
            Point  point1 = new Point(this.tokenPos, base.LineIndex);

            while (this.GetParamTypeAndName(ref text1, ref text2, ref point1, out text3))
            {
                Info.Params.Add(new ParamInfo(text1, text2, point1, text3));
                if (base.TokenString == ")")
                {
                    return;
                }
                text1 = string.Empty;
                text2 = string.Empty;
            }
        }
コード例 #4
0
 public NonFactoryDelegateException(IDelegateInfo delegateInfo)
     : base($"Delegate {delegateInfo} is not supported. Delegates must have a return type and no parameters.")
 {
 }
コード例 #5
0
 public ServiceFactory(IDelegateInfo delegateInfo)
 {
     _delegateInfo = delegateInfo;
 }
コード例 #6
0
ファイル: ClassInfo.cs プロジェクト: saneman1/IQMap
 public bool TryGetValue(string fieldName, out IDelegateInfo info)
 {
     IQObjectMapper.IDelegateInfo baseInfo;
     if (base.TryGetValue(fieldName, out baseInfo))
     {
         info = (IDelegateInfo)baseInfo;
         return true;
     }
     else
     {
         info = null;
         return false;
     }
 }