Skip to content

Commit 1d06a81

Browse files
author
zzzprojects
committed
ADD ToSqlDbType \ Revamp GetCustomAttributes
ADD: Byte.SqlSystemTypeToSqlDbType ADD: Int16.SqlSystemTypeToSqlDbType ADD: Int.SqlSystemTypeToSqlDbType ADD: String.SqlTypeNameToSqlDbType ADD: GetCustomAttributeByFullName ADD: GetCustomAttributeByName ADD: GetCustomAttributesByFullName ADD: GetCustomAttributesByName ADD/FIX: GetCustomAttribute (Support enum, class, MemberInfo) ADD/FIX: GetCustomAttributes (Support enum, class, MemberInfo) ADD/FIX: GetCustomAttributeDescription (Support enum, class, MemberInfo)
1 parent 70083e6 commit 1d06a81

24 files changed

+1439
-44
lines changed

Diff for: lab/Z.ExtensionMethods.Lab/Form1.cs

+7
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@
1313

1414
namespace Z.ExtensionMethods.Lab
1515
{
16+
public class MyClass
17+
{
18+
19+
}
1620
public static class LabExtension
1721
{
1822
public static IEnumerable<T> MergeInnerEnumerable<T>(this IEnumerable<IEnumerable<T>> @this)
1923
{
24+
var file = @"c:\path";
2025
List<IEnumerable<T>> listItem = @this.ToList();
2126

2227
var list = new List<T>();
@@ -153,6 +158,8 @@ public Form1()
153158
{
154159
InitializeComponent();
155160

161+
var aaaa = (Attribute)null;
162+
156163
StringBuilder sb = new StringBuilder("0123456789");
157164
var b4 = "abc".Substring(1, 4);
158165
char ch = '\'';

Diff for: lab/Z.ExtensionMethods.Lab/Z.ExtensionMethods.Lab.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@
9191
<Project>{6edebb64-2d4b-43cc-a94e-919b44e254a2}</Project>
9292
<Name>Z.Data</Name>
9393
</ProjectReference>
94+
<ProjectReference Include="..\..\src\Z.Reflection\Z.Reflection.csproj">
95+
<Project>{c3eda334-3d94-4960-93b9-3026adc4cc12}</Project>
96+
<Name>Z.Reflection</Name>
97+
</ProjectReference>
9498
</ItemGroup>
9599
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
96100
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
using System;
2+
using System.Data;
3+
4+
public static partial class Extensions
5+
{
6+
public static SqlDbType SqlSystemTypeToSqlDbType(this byte @this)
7+
{
8+
switch (@this)
9+
{
10+
case 34: // 34 | "image" | SqlDbType.Image
11+
return SqlDbType.Image;
12+
13+
case 35: // 35 | "text" | SqlDbType.Text
14+
return SqlDbType.Text;
15+
16+
case 36: // 36 | "uniqueidentifier" | SqlDbType.UniqueIdentifier
17+
return SqlDbType.UniqueIdentifier;
18+
19+
case 40: // 40 | "date" | SqlDbType.Date
20+
return SqlDbType.Date;
21+
22+
case 41: // 41 | "time" | SqlDbType.Time
23+
return SqlDbType.Time;
24+
25+
case 42: // 42 | "datetime2" | SqlDbType.DateTime2
26+
return SqlDbType.DateTime2;
27+
28+
case 43: // 43 | "datetimeoffset" | SqlDbType.DateTimeOffset
29+
return SqlDbType.DateTimeOffset;
30+
31+
case 48: // 48 | "tinyint" | SqlDbType.TinyInt
32+
return SqlDbType.TinyInt;
33+
34+
case 52: // 52 | "smallint" | SqlDbType.SmallInt
35+
return SqlDbType.SmallInt;
36+
37+
case 56: // 56 | "int" | SqlDbType.Int
38+
return SqlDbType.Int;
39+
40+
case 58: // 58 | "smalldatetime" | SqlDbType.SmallDateTime
41+
return SqlDbType.SmallDateTime;
42+
43+
case 59: // 59 | "real" | SqlDbType.Real
44+
return SqlDbType.Real;
45+
46+
case 60: // 60 | "money" | SqlDbType.Money
47+
return SqlDbType.Money;
48+
49+
case 61: // 61 | "datetime" | SqlDbType.DateTime
50+
return SqlDbType.DateTime;
51+
52+
case 62: // 62 | "float" | SqlDbType.Float
53+
return SqlDbType.Float;
54+
55+
case 98: // 98 | "sql_variant" | SqlDbType.Variant
56+
return SqlDbType.Variant;
57+
58+
case 99: // 99 | "ntext" | SqlDbType.NText
59+
return SqlDbType.NText;
60+
61+
case 104: // 104 | "bit" | SqlDbType.Bit
62+
return SqlDbType.Bit;
63+
64+
case 106: // 106 | "decimal" | SqlDbType.Decimal
65+
return SqlDbType.Decimal;
66+
67+
case 108: // 108 | "numeric" | SqlDbType.Decimal
68+
return SqlDbType.Decimal;
69+
70+
case 122: // 122 | "smallmoney" | SqlDbType.SmallMoney
71+
return SqlDbType.SmallMoney;
72+
73+
case 127: // 127 | "bigint" | SqlDbType.BigInt
74+
return SqlDbType.BigInt;
75+
76+
case 165: // 165 | "varbinary" | SqlDbType.VarBinary
77+
return SqlDbType.VarBinary;
78+
79+
case 167: // 167 | "varchar" | SqlDbType.VarChar
80+
return SqlDbType.VarChar;
81+
82+
case 173: // 173 | "binary" | SqlDbType.Binary
83+
return SqlDbType.Binary;
84+
85+
case 175: // 175 | "char" | SqlDbType.Char
86+
return SqlDbType.Char;
87+
88+
case 189: // 189 | "timestamp" | SqlDbType.Timestamp
89+
return SqlDbType.Timestamp;
90+
91+
case 231: // 231 | "nvarchar", "sysname" | SqlDbType.NVarChar
92+
return SqlDbType.NVarChar;
93+
94+
case 239: // 239 | "nchar" | SqlDbType.NChar
95+
return SqlDbType.NChar;
96+
97+
case 240: // 240 | "hierarchyid", "geometry", "geography" | SqlDbType.Udt
98+
return SqlDbType.Udt;
99+
100+
case 241: // 241 | "xml" | SqlDbType.Xml
101+
return SqlDbType.Xml;
102+
103+
default:
104+
throw new Exception(string.Format("Unsupported Type: {0}. Please let us know about this type and we will support it: [email protected]", @this));
105+
}
106+
}
107+
}
+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
using System;
2+
using System.Data;
3+
4+
public static partial class Extensions
5+
{
6+
public static SqlDbType SqlSystemTypeToSqlDbType(this short @this)
7+
{
8+
switch (@this)
9+
{
10+
case 34: // 34 | "image" | SqlDbType.Image
11+
return SqlDbType.Image;
12+
13+
case 35: // 35 | "text" | SqlDbType.Text
14+
return SqlDbType.Text;
15+
16+
case 36: // 36 | "uniqueidentifier" | SqlDbType.UniqueIdentifier
17+
return SqlDbType.UniqueIdentifier;
18+
19+
case 40: // 40 | "date" | SqlDbType.Date
20+
return SqlDbType.Date;
21+
22+
case 41: // 41 | "time" | SqlDbType.Time
23+
return SqlDbType.Time;
24+
25+
case 42: // 42 | "datetime2" | SqlDbType.DateTime2
26+
return SqlDbType.DateTime2;
27+
28+
case 43: // 43 | "datetimeoffset" | SqlDbType.DateTimeOffset
29+
return SqlDbType.DateTimeOffset;
30+
31+
case 48: // 48 | "tinyint" | SqlDbType.TinyInt
32+
return SqlDbType.TinyInt;
33+
34+
case 52: // 52 | "smallint" | SqlDbType.SmallInt
35+
return SqlDbType.SmallInt;
36+
37+
case 56: // 56 | "int" | SqlDbType.Int
38+
return SqlDbType.Int;
39+
40+
case 58: // 58 | "smalldatetime" | SqlDbType.SmallDateTime
41+
return SqlDbType.SmallDateTime;
42+
43+
case 59: // 59 | "real" | SqlDbType.Real
44+
return SqlDbType.Real;
45+
46+
case 60: // 60 | "money" | SqlDbType.Money
47+
return SqlDbType.Money;
48+
49+
case 61: // 61 | "datetime" | SqlDbType.DateTime
50+
return SqlDbType.DateTime;
51+
52+
case 62: // 62 | "float" | SqlDbType.Float
53+
return SqlDbType.Float;
54+
55+
case 98: // 98 | "sql_variant" | SqlDbType.Variant
56+
return SqlDbType.Variant;
57+
58+
case 99: // 99 | "ntext" | SqlDbType.NText
59+
return SqlDbType.NText;
60+
61+
case 104: // 104 | "bit" | SqlDbType.Bit
62+
return SqlDbType.Bit;
63+
64+
case 106: // 106 | "decimal" | SqlDbType.Decimal
65+
return SqlDbType.Decimal;
66+
67+
case 108: // 108 | "numeric" | SqlDbType.Decimal
68+
return SqlDbType.Decimal;
69+
70+
case 122: // 122 | "smallmoney" | SqlDbType.SmallMoney
71+
return SqlDbType.SmallMoney;
72+
73+
case 127: // 127 | "bigint" | SqlDbType.BigInt
74+
return SqlDbType.BigInt;
75+
76+
case 165: // 165 | "varbinary" | SqlDbType.VarBinary
77+
return SqlDbType.VarBinary;
78+
79+
case 167: // 167 | "varchar" | SqlDbType.VarChar
80+
return SqlDbType.VarChar;
81+
82+
case 173: // 173 | "binary" | SqlDbType.Binary
83+
return SqlDbType.Binary;
84+
85+
case 175: // 175 | "char" | SqlDbType.Char
86+
return SqlDbType.Char;
87+
88+
case 189: // 189 | "timestamp" | SqlDbType.Timestamp
89+
return SqlDbType.Timestamp;
90+
91+
case 231: // 231 | "nvarchar", "sysname" | SqlDbType.NVarChar
92+
return SqlDbType.NVarChar;
93+
94+
case 239: // 239 | "nchar" | SqlDbType.NChar
95+
return SqlDbType.NChar;
96+
97+
case 240: // 240 | "hierarchyid", "geometry", "geography" | SqlDbType.Udt
98+
return SqlDbType.Udt;
99+
100+
case 241: // 241 | "xml" | SqlDbType.Xml
101+
return SqlDbType.Xml;
102+
103+
default:
104+
throw new Exception(string.Format("Unsupported Type: {0}. Please let us know about this type and we will support it: [email protected]", @this));
105+
}
106+
}
107+
}
+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
using System;
2+
using System.Data;
3+
4+
public static partial class Extensions
5+
{
6+
public static SqlDbType SqlSystemTypeToSqlDbType(this int @this)
7+
{
8+
switch (@this)
9+
{
10+
case 34: // 34 | "image" | SqlDbType.Image
11+
return SqlDbType.Image;
12+
13+
case 35: // 35 | "text" | SqlDbType.Text
14+
return SqlDbType.Text;
15+
16+
case 36: // 36 | "uniqueidentifier" | SqlDbType.UniqueIdentifier
17+
return SqlDbType.UniqueIdentifier;
18+
19+
case 40: // 40 | "date" | SqlDbType.Date
20+
return SqlDbType.Date;
21+
22+
case 41: // 41 | "time" | SqlDbType.Time
23+
return SqlDbType.Time;
24+
25+
case 42: // 42 | "datetime2" | SqlDbType.DateTime2
26+
return SqlDbType.DateTime2;
27+
28+
case 43: // 43 | "datetimeoffset" | SqlDbType.DateTimeOffset
29+
return SqlDbType.DateTimeOffset;
30+
31+
case 48: // 48 | "tinyint" | SqlDbType.TinyInt
32+
return SqlDbType.TinyInt;
33+
34+
case 52: // 52 | "smallint" | SqlDbType.SmallInt
35+
return SqlDbType.SmallInt;
36+
37+
case 56: // 56 | "int" | SqlDbType.Int
38+
return SqlDbType.Int;
39+
40+
case 58: // 58 | "smalldatetime" | SqlDbType.SmallDateTime
41+
return SqlDbType.SmallDateTime;
42+
43+
case 59: // 59 | "real" | SqlDbType.Real
44+
return SqlDbType.Real;
45+
46+
case 60: // 60 | "money" | SqlDbType.Money
47+
return SqlDbType.Money;
48+
49+
case 61: // 61 | "datetime" | SqlDbType.DateTime
50+
return SqlDbType.DateTime;
51+
52+
case 62: // 62 | "float" | SqlDbType.Float
53+
return SqlDbType.Float;
54+
55+
case 98: // 98 | "sql_variant" | SqlDbType.Variant
56+
return SqlDbType.Variant;
57+
58+
case 99: // 99 | "ntext" | SqlDbType.NText
59+
return SqlDbType.NText;
60+
61+
case 104: // 104 | "bit" | SqlDbType.Bit
62+
return SqlDbType.Bit;
63+
64+
case 106: // 106 | "decimal" | SqlDbType.Decimal
65+
return SqlDbType.Decimal;
66+
67+
case 108: // 108 | "numeric" | SqlDbType.Decimal
68+
return SqlDbType.Decimal;
69+
70+
case 122: // 122 | "smallmoney" | SqlDbType.SmallMoney
71+
return SqlDbType.SmallMoney;
72+
73+
case 127: // 127 | "bigint" | SqlDbType.BigInt
74+
return SqlDbType.BigInt;
75+
76+
case 165: // 165 | "varbinary" | SqlDbType.VarBinary
77+
return SqlDbType.VarBinary;
78+
79+
case 167: // 167 | "varchar" | SqlDbType.VarChar
80+
return SqlDbType.VarChar;
81+
82+
case 173: // 173 | "binary" | SqlDbType.Binary
83+
return SqlDbType.Binary;
84+
85+
case 175: // 175 | "char" | SqlDbType.Char
86+
return SqlDbType.Char;
87+
88+
case 189: // 189 | "timestamp" | SqlDbType.Timestamp
89+
return SqlDbType.Timestamp;
90+
91+
case 231: // 231 | "nvarchar", "sysname" | SqlDbType.NVarChar
92+
return SqlDbType.NVarChar;
93+
94+
case 239: // 239 | "nchar" | SqlDbType.NChar
95+
return SqlDbType.NChar;
96+
97+
case 240: // 240 | "hierarchyid", "geometry", "geography" | SqlDbType.Udt
98+
return SqlDbType.Udt;
99+
100+
case 241: // 241 | "xml" | SqlDbType.Xml
101+
return SqlDbType.Xml;
102+
103+
default:
104+
throw new Exception(string.Format("Unsupported Type: {0}. Please let us know about this type and we will support it: [email protected]", @this));
105+
}
106+
}
107+
}

0 commit comments

Comments
 (0)