/// <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; }
/// <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; }
/// <summary> /// 指定されたメンバの型名を取得します。 /// </summary> /// <param name="dbTypeId">UserTypeId列挙型</param> /// <returns>型名</returns> public static string GetName(EnumDBTypeId dbTypeId) { var attribute = DBTypeInfoAttribute.GetAttributes(dbTypeId); return attribute.name; }
/// <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(); }