自定义代理类
1using System;
2using System.Data;
3
4namespace DataLayer
5{
6 /**//// <summary>
7 /// This class strictly forwards every call to a subject object. To
8 /// intercept any specific call, create a subclass.
9 /// </summary>
10 public class DataReaderProxy : IDataReader
11 {
12 private IDataReader _subject;
13 /**//// <summary>
14 /// Create a proxy for the given subject.
15 /// </summary>
16 /// <param name="subject">The real reader to proxy for</param>
17 public DataReaderProxy(IDataReader subject)
18 {
19 _subject = subject;
20 }
21 // properties for IDataRecord
22 public virtual int FieldCount
23 {
24 get
25 {
26 return _subject.FieldCount;
27 }
28 }
29 public virtual object this [string name]
30 {
31 get
32 {
33 return _subject[name];
34 }
35 }
36 public virtual object this [int index]
37 {
38 get
39 {
40 return _subject[index];
41 }
42 }
43 // properties for IDataReader
44 public virtual int Depth
45 {
46 get
47 {
48 return _subject.Depth;
49 }
50 }
51 public virtual bool IsClosed
52 {
53 get
54 {
55 return _subject.IsClosed;
56 }
57 }
58 // methods for IDataRecord
59 public virtual bool GetBoolean(int i)
60 {
61 return _subject.GetBoolean(i);
62 }
63 public virtual byte GetByte(int i)
64 {
65 return _subject.GetByte(i);
66 }
67 public virtual long GetBytes(
68 int i,
69 long fieldoffset,
70 byte[] buffer,
71 int bufferoffset,
72 int length
73 )
74 {
75 return _subject.GetBytes(i, fieldoffset, buffer, bufferoffset, length);
76 }
77 public virtual char GetChar(int i)
78 {
79 return _subject.GetChar(i);
80 }
81 public virtual long GetChars(
82 int i,
83 long fieldoffset,
84 char[] buffer,
85 int bufferoffset,
86 int length
87 )
88 {
89 return _subject.GetChars(i, fieldoffset, buffer, bufferoffset, length);
90 }
91 public virtual IDataReader GetData(int i)
92 {
93 return _subject.GetData(i);
94 }
95 public virtual string GetDataTypeName(int i)
96 {
97 return _subject.GetDataTypeName(i);
98 }
99 public virtual DateTime GetDateTime(int i)
100 {
101 return _subject.GetDateTime(i);
102 }
103 public virtual decimal GetDecimal(int i)
104 {
105 return _subject.GetDecimal(i);
106 }
107 public virtual double GetDouble(int i)
108 {
109 return _subject.GetDouble(i);
110 }
111 public virtual Type GetFieldType(int i)
112 {
113 return _subject.GetFieldType(i);
114 }
115 public virtual float GetFloat(int i)
116 {
117 return _subject.GetFloat(i);
118 }
119 public virtual Guid GetGuid(int i)
120 {
121 return _subject.GetGuid(i);
122 }
123 public virtual short GetInt16(int i)
124 {
125 return _subject.GetInt16(i);
126 }
127 public virtual int GetInt32(int i)
128 {
129 return _subject.GetInt32(i);
130 }
131 public virtual long GetInt64(int i)
132 {
133 return _subject.GetInt64(i);
134 }
135 public virtual string GetName(int i)
136 {
137 return _subject.GetName(i);
138 }
139 public virtual int GetOrdinal(string name)
140 {
141 return _subject.GetOrdinal(name);
142 }
143 public virtual string GetString(int i)
144 {
145 return _subject.GetString(i);
146
1using System;
2using System.Data;
3
4namespace DataLayer
5{
6 /**//// <summary>
7 /// This class strictly forwards every call to a subject object. To
8 /// intercept any specific call, create a subclass.
9 /// </summary>
10 public class DataReaderProxy : IDataReader
11 {
12 private IDataReader _subject;
13 /**//// <summary>
14 /// Create a proxy for the given subject.
15 /// </summary>
16 /// <param name="subject">The real reader to proxy for</param>
17 public DataReaderProxy(IDataReader subject)
18 {
19 _subject = subject;
20 }
21 // properties for IDataRecord
22 public virtual int FieldCount
23 {
24 get
25 {
26 return _subject.FieldCount;
27 }
28 }
29 public virtual object this [string name]
30 {
31 get
32 {
33 return _subject[name];
34 }
35 }
36 public virtual object this [int index]
37 {
38 get
39 {
40 return _subject[index];
41 }
42 }
43 // properties for IDataReader
44 public virtual int Depth
45 {
46 get
47 {
48 return _subject.Depth;
49 }
50 }
51 public virtual bool IsClosed
52 {
53 get
54 {
55 return _subject.IsClosed;
56 }
57 }
58 // methods for IDataRecord
59 public virtual bool GetBoolean(int i)
60 {
61 return _subject.GetBoolean(i);
62 }
63 public virtual byte GetByte(int i)
64 {
65 return _subject.GetByte(i);
66 }
67 public virtual long GetBytes(
68 int i,
69 long fieldoffset,
70 byte[] buffer,
71 int bufferoffset,
72 int length
73 )
74 {
75 return _subject.GetBytes(i, fieldoffset, buffer, bufferoffset, length);
76 }
77 public virtual char GetChar(int i)
78 {
79 return _subject.GetChar(i);
80 }
81 public virtual long GetChars(
82 int i,
83 long fieldoffset,
84 char[] buffer,
85 int bufferoffset,
86 int length
87 )
88 {
89 return _subject.GetChars(i, fieldoffset, buffer, bufferoffset, length);
90 }
91 public virtual IDataReader GetData(int i)
92 {
93 return _subject.GetData(i);
94 }
95 public virtual string GetDataTypeName(int i)
96 {
97 return _subject.GetDataTypeName(i);
98 }
99 public virtual DateTime GetDateTime(int i)
100 {
101 return _subject.GetDateTime(i);
102 }
103 public virtual decimal GetDecimal(int i)
104 {
105 return _subject.GetDecimal(i);
106 }
107 public virtual double GetDouble(int i)
108 {
109 return _subject.GetDouble(i);
110 }
111 public virtual Type GetFieldType(int i)
112 {
113 return _subject.GetFieldType(i);
114 }
115 public virtual float GetFloat(int i)
116 {
117 return _subject.GetFloat(i);
118 }
119 public virtual Guid GetGuid(int i)
120 {
121 return _subject.GetGuid(i);
122 }
123 public virtual short GetInt16(int i)
124 {
125 return _subject.GetInt16(i);
126 }
127 public virtual int GetInt32(int i)
128 {
129 return _subject.GetInt32(i);
130 }
131 public virtual long GetInt64(int i)
132 {
133 return _subject.GetInt64(i);
134 }
135 public virtual string GetName(int i)
136 {
137 return _subject.GetName(i);
138 }
139 public virtual int GetOrdinal(string name)
140 {
141 return _subject.GetOrdinal(name);
142 }
143 public virtual string GetString(int i)
144 {
145 return _subject.GetString(i);
146