Exemple #1
0
 /// <summary>
 /// 指定されたパラメタを元にインスタンスを生成します。
 /// </summary>
 /// <param name="dbTypeId">型ID</param>
 /// <param name="precision">有効桁数</param>
 /// <param name="scale">小数点以下桁数</param>
 public DBType(EnumDBTypeId dbTypeId, int precision = 0, int scale = 0)
 {
     this.dbTypeId = dbTypeId;
     this.precision = precision;
     this.scale = scale;
 }
Exemple #2
0
 /// <summary>
 /// 指定されたメンバのC#での型を取得します。
 /// </summary>
 /// <param name="dbTypeId">UserTypeId列挙型</param>
 /// <returns>C#での型</returns>
 public static Type GetCSharpType(EnumDBTypeId dbTypeId)
 {
     var attribute = DBTypeInfoAttribute.GetAttributes(dbTypeId);
     return attribute.cSharpType;
 }
Exemple #3
0
 /// <summary>
 /// 指定されたメンバの型名を取得します。
 /// </summary>
 /// <param name="dbTypeId">UserTypeId列挙型</param>
 /// <returns>型名</returns>
 public static string GetName(EnumDBTypeId dbTypeId)
 {
     var attribute = DBTypeInfoAttribute.GetAttributes(dbTypeId);
     return attribute.name;
 }
Exemple #4
0
            /// <summary>
            /// 指定されたUserTypeId列挙型からUserTypeTypeInfoAttributeを取得します。
            /// </summary>
            /// <param name="dbTypeId">UserTypeId列挙型</param>
            /// <returns>UserTypeTypeInfoAttribute</returns>
            public static DBTypeInfoAttribute GetAttributes(EnumDBTypeId dbTypeId)
            {
                // フィールドの属性取得
                FieldInfo fInfo = typeof(EnumDBTypeId).GetField(dbTypeId.ToString());
                object[] attributes = fInfo.GetCustomAttributes(typeof(DBTypeInfoAttribute), false);

                // 属性が無ければエラー
                if (1 != attributes.Length)
                {
                    throw new ArgumentException("DBTypeInfo属性が定義されていません。", "userTypeId");
                }

                return (DBTypeInfoAttribute)attributes.Single();
            }